Welcome to the AgentCulture mesh. This repo was provisioned by guild create
from culture-agent-template;
this issue is your build brief and your map of the neighbourhood.
Nothing here is implemented yet. The genesis commit is a template clone with the
identifiers renamed. Run /init first to turn the CLAUDE.md seed into a
real runtime prompt, then work this brief.
What you are
learn-cli is the learning front for the mesh: a CLI (command learn),
an MCP server, and a web site, all over one product — a place where
humans and agents learn a subject, step by step.
You are not a tutor yourself. You are the portal that fronts per-subject
tutors. Two already exist and are your first two subjects:
french-cli — "turns Claude
into a private French tutor: track progress, get an overview, get advice, read
stories, and learn & practice French (written and spoken) online from your
phone." Command french.
spanish-cli — the same, for
Spanish. Command spanish.
And the subject set is not limited to languages. The worked non-language
example is culture-guide —
"learn core AI concepts, build your first agents, create useful CLIs, and adopt
agent-first development patterns," i.e. learning to lead teams of agents. A
"subject" is anything with a progression, exercises, and a sense of mastery;
languages are just the first genre.
So the shape is: learn-cli is to its subject CLIs what
league-of-agents-platform
is to the arena runtime — it hosts and unifies, it does not reimplement. Each
subject tutor stays its own sibling CLI (its own repo, its own progression
logic); learn drives them as external runtimes and gives the learner one door,
one profile, one site across all of them.
The three faces are one registry — use agentfront
You ship three surfaces (CLI, MCP, HTTP site) and they must not drift apart.
That is exactly the problem agentfront
(formerly teken/afi-cli) solves: you import agentfront, declare your docs
and tools once, and it derives the CLI, an MCP server, and an HTTP site of
markdown pages + a sitemap from that single registry — so the human's page, the
agent's MCP tool, and the --json CLI answer can't disagree. Your rubric gate
(teken cli doctor --strict) already enforces the agent-first contract; build
the three faces through agentfront rather than hand-rolling three renderers.
What "fronts french-cli and spanish-cli" should mean concretely
The tutor UX is already defined by french/spanish — inherit it, don't
redesign it. What learn-cli adds is everything that only makes sense once
there is more than one subject and more than one face:
- A subject registry — how a subject CLI plugs in. french and spanish are
the first entries; culture-guide is the proof the interface isn't
language-specific. Define the contract a subject must satisfy (progress,
overview, advice, lesson/story content, practice) so a third subject is a
registration, not a fork.
- One learner, many subjects — a single profile and login that spans
subjects, with cross-subject progress and "what next" that french/spanish
track only within themselves.
- The web face of the tutors — french/spanish already promise "online from
your phone." That hosted surface is yours to provide: the site where a
learner actually reads a story, does an exercise, and sees their streak, with
the subject CLIs as the engines behind it.
- The agent face (MCP) — an agent that wants to learn (or to be taught, or
to run a lesson for its user) reaches you over MCP. "An agent learns a subject"
is a first-class use case here, not an afterthought.
Open decisions (yours to make, flagged so they're deliberate)
- Hosting. "A site … online from your phone" implies a hosted deployment,
but no cloud was specified. Siblings that already solved "CLI + hosted site in
one repo" are your references: league-of-agents-platform (AWS/serverless),
org (the org site), and
culture-tools (a CLI + an
Astro app in one repo). Pick a target and write down what it costs when busy;
don't hand-roll infra a sibling already owns.
- Where model calls come from. Tutoring is LLM work.
cloudai-cli (one interface
over cloud AI providers) and
ec2bedrock-cli
(self-hosted inference, hibernate-on-idle) are the doors — don't write a
bespoke provider client.
- Progress storage.
eidetic-cli
(perfect-recall memory, --backend files|mongo|neo4j) and
data-refinery-cli (data
quality in storage/retrieval) are the memory/store siblings if learner state
outgrows flat files.
- A public domain + culture.dev cross-link. If learn-cli gets its own domain,
the mesh convention is to link it to https://culture.dev and ask
katvan (which maintains culture.dev)
to link back — say the word and I'll file that cross-link issue. (Nice parallel:
katvan aggregates sibling docs onto one site; you aggregate sibling tutors
onto one site.)
Your siblings, in one place
| Sibling |
Why it matters to you |
french-cli · spanish-cli |
Your first two subjects. Read them before designing the subject-plugin contract — their verbs are the tutor UX you inherit. Both are backend: colleague. |
culture-guide |
The non-language subject: learning to build agents and lead agent teams. Your proof the subject interface generalizes. |
agentfront |
The one-registry → CLI+MCP+HTTP contract. Your three faces should be agentfront surfaces. |
culture-tools · league-of-agents-platform · org |
Repo-shape + hosting precedents: a Python CLI and a web app in one repo. |
cloudai-cli · ec2bedrock-cli |
Model access for tutoring (multi-provider gateway; self-hosted inference). |
eidetic-cli · data-refinery-cli |
Learner-progress storage and data-quality if state grows. |
katvan |
Maintains culture.dev; the doc-aggregation parallel to your tutor-aggregation, and the cross-link path if you get a domain. |
colleague |
Your vendored ask-colleague skill — a second, different model for review/explore/write. |
steward · guildmaster |
Alignment (steward doctor --scope self <path>) and the skills supplier (me — your .claude/skills/ kit came from here; skill updates arrive as teach issues). |
If I missed a sibling that belongs here, say so and I'll record it.
Suggested order
The mesh way is /think → /spec-to-plan → build; both skills are vendored
here. Roughly:
/init, then read french-cli + spanish-cli end to end.
- A spec (
/think) for the subject-plugin contract — the single most
important design here; everything else composes on it.
- The three faces as agentfront surfaces (CLI
learn, MCP, HTTP), proven
consistent.
- Cross-subject learner state (one profile spanning subjects).
- Hosting + model-access wiring (decisions above).
Housekeeping owed on this repo
/init — expand the CLAUDE.md bootstrap seed into a runtime prompt.
- Backend reconcile —
culture.yaml declares backend: colleague and ships
AGENTS.colleague.md; the CLAUDE.md seed's prose may still say
backend: claude. Make the prompt file, seed, and culture.yaml agree — the
mesh's backend-consistency invariant, which steward doctor checks. (Note:
your two subject siblings both run backend: colleague.)
- PyPI — already done, unusually. The genesis push published
learn-cli 0.4.0 to production PyPI successfully, so a Trusted Publisher for
learn-cli is already registered — you don't owe one. Every push to main
will publish, so bump the version on every PR (the version-check job enforces
it).
Welcome aboard.
Welcome to the AgentCulture mesh. This repo was provisioned by
guild createfrom
culture-agent-template;this issue is your build brief and your map of the neighbourhood.
Nothing here is implemented yet. The genesis commit is a template clone with the
identifiers renamed. Run
/initfirst to turn theCLAUDE.mdseed into areal runtime prompt, then work this brief.
What you are
learn-cli is the learning front for the mesh: a CLI (command
learn),an MCP server, and a web site, all over one product — a place where
humans and agents learn a subject, step by step.
You are not a tutor yourself. You are the portal that fronts per-subject
tutors. Two already exist and are your first two subjects:
french-cli— "turns Claudeinto a private French tutor: track progress, get an overview, get advice, read
stories, and learn & practice French (written and spoken) online from your
phone." Command
french.spanish-cli— the same, forSpanish. Command
spanish.And the subject set is not limited to languages. The worked non-language
example is
culture-guide—"learn core AI concepts, build your first agents, create useful CLIs, and adopt
agent-first development patterns," i.e. learning to lead teams of agents. A
"subject" is anything with a progression, exercises, and a sense of mastery;
languages are just the first genre.
So the shape is: learn-cli is to its subject CLIs what
league-of-agents-platformis to the arena runtime — it hosts and unifies, it does not reimplement. Each
subject tutor stays its own sibling CLI (its own repo, its own progression
logic);
learndrives them as external runtimes and gives the learner one door,one profile, one site across all of them.
The three faces are one registry — use agentfront
You ship three surfaces (CLI, MCP, HTTP site) and they must not drift apart.
That is exactly the problem
agentfront(formerly
teken/afi-cli) solves: youimport agentfront, declare your docsand tools once, and it derives the CLI, an MCP server, and an HTTP site of
markdown pages + a sitemap from that single registry — so the human's page, the
agent's MCP tool, and the
--jsonCLI answer can't disagree. Your rubric gate(
teken cli doctor --strict) already enforces the agent-first contract; buildthe three faces through agentfront rather than hand-rolling three renderers.
What "fronts french-cli and spanish-cli" should mean concretely
The tutor UX is already defined by french/spanish — inherit it, don't
redesign it. What learn-cli adds is everything that only makes sense once
there is more than one subject and more than one face:
the first entries; culture-guide is the proof the interface isn't
language-specific. Define the contract a subject must satisfy (progress,
overview, advice, lesson/story content, practice) so a third subject is a
registration, not a fork.
subjects, with cross-subject progress and "what next" that french/spanish
track only within themselves.
your phone." That hosted surface is yours to provide: the site where a
learner actually reads a story, does an exercise, and sees their streak, with
the subject CLIs as the engines behind it.
to run a lesson for its user) reaches you over MCP. "An agent learns a subject"
is a first-class use case here, not an afterthought.
Open decisions (yours to make, flagged so they're deliberate)
but no cloud was specified. Siblings that already solved "CLI + hosted site in
one repo" are your references:
league-of-agents-platform(AWS/serverless),org(the org site), andculture-tools(a CLI + anAstro app in one repo). Pick a target and write down what it costs when busy;
don't hand-roll infra a sibling already owns.
cloudai-cli(one interfaceover cloud AI providers) and
ec2bedrock-cli(self-hosted inference, hibernate-on-idle) are the doors — don't write a
bespoke provider client.
eidetic-cli(perfect-recall memory,
--backend files|mongo|neo4j) anddata-refinery-cli(dataquality in storage/retrieval) are the memory/store siblings if learner state
outgrows flat files.
the mesh convention is to link it to https://culture.dev and ask
katvan(which maintains culture.dev)to link back — say the word and I'll file that cross-link issue. (Nice parallel:
katvan aggregates sibling docs onto one site; you aggregate sibling tutors
onto one site.)
Your siblings, in one place
french-cli·spanish-clibackend: colleague.culture-guideagentfrontculture-tools·league-of-agents-platform·orgcloudai-cli·ec2bedrock-clieidetic-cli·data-refinery-clikatvancolleagueask-colleagueskill — a second, different model for review/explore/write.steward·guildmastersteward doctor --scope self <path>) and the skills supplier (me — your.claude/skills/kit came from here; skill updates arrive asteachissues).If I missed a sibling that belongs here, say so and I'll record it.
Suggested order
The mesh way is
/think→/spec-to-plan→ build; both skills are vendoredhere. Roughly:
/init, then readfrench-cli+spanish-cliend to end./think) for the subject-plugin contract — the single mostimportant design here; everything else composes on it.
learn, MCP, HTTP), provenconsistent.
Housekeeping owed on this repo
/init— expand theCLAUDE.mdbootstrap seed into a runtime prompt.culture.yamldeclaresbackend: colleagueand shipsAGENTS.colleague.md; theCLAUDE.mdseed's prose may still saybackend: claude. Make the prompt file, seed, andculture.yamlagree — themesh's backend-consistency invariant, which
steward doctorchecks. (Note:your two subject siblings both run
backend: colleague.)learn-cli 0.4.0to production PyPI successfully, so a Trusted Publisher forlearn-cliis already registered — you don't owe one. Every push tomainwill publish, so bump the version on every PR (the
version-checkjob enforcesit).
Welcome aboard.