learn-cli 0.4.0__tar.gz → 0.4.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- learn_cli-0.4.2/.devague/current +1 -0
- learn_cli-0.4.2/.devague/current_plan +1 -0
- learn_cli-0.4.2/.devague/frames/agentculture-org-learn-is-live-one-learning-hub-in.json +563 -0
- learn_cli-0.4.2/.devague/plans/agentculture-org-learn-is-live-one-learning-hub-in.json +595 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.gitignore +3 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.markdownlint-cli2.yaml +2 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/CHANGELOG.md +24 -0
- learn_cli-0.4.2/CLAUDE.md +253 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/PKG-INFO +6 -5
- {learn_cli-0.4.0 → learn_cli-0.4.2}/README.md +5 -4
- learn_cli-0.4.2/docs/plans/.markdownlint-cli2.yaml +15 -0
- learn_cli-0.4.2/docs/plans/2026-07-10-agentculture-org-learn-is-live-one-learning-hub-in.md +143 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/docs/skill-sources.md +13 -0
- learn_cli-0.4.2/docs/specs/.markdownlint-cli2.yaml +15 -0
- learn_cli-0.4.2/docs/specs/2026-07-10-agentculture-org-learn-is-live-one-learning-hub-in.md +112 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/pyproject.toml +1 -1
- {learn_cli-0.4.0 → learn_cli-0.4.2}/uv.lock +1 -1
- learn_cli-0.4.0/CLAUDE.md +0 -28
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/agent-config/SKILL.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/agent-config/data/backend-fingerprints.yaml +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/agent-config/scripts/show.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/ask-colleague/SKILL.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/ask-colleague/prompts/explore.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/ask-colleague/prompts/review.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/ask-colleague/prompts/write.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/ask-colleague/scripts/ask-colleague.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/assign-to-workforce/SKILL.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/assign-to-workforce/scripts/assign-to-workforce.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/cicd/SKILL.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/cicd/scripts/_resolve-nick.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/cicd/scripts/portability-lint.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/cicd/scripts/pr-reply.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/cicd/scripts/pr-status.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/cicd/scripts/workflow.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/communicate/SKILL.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/communicate/scripts/fetch-issues.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/communicate/scripts/mesh-message.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/communicate/scripts/post-comment.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/communicate/scripts/post-issue.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/communicate/scripts/templates/skill-new-brief.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/communicate/scripts/templates/skill-update-brief.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/doc-test-alignment/SKILL.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/doc-test-alignment/scripts/check.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/pypi-maintainer/SKILL.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/pypi-maintainer/scripts/switch-source.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/recall/SKILL.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/recall/scripts/recall.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/remember/SKILL.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/remember/scripts/remember.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/run-tests/SKILL.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/run-tests/scripts/test.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/sonarclaude/SKILL.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/sonarclaude/scripts/sonar.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/spec-to-plan/SKILL.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/spec-to-plan/scripts/spec-to-plan.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/think/SKILL.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/think/scripts/think.sh +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/version-bump/SKILL.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills/version-bump/scripts/bump.py +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.claude/skills.local.yaml.example +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.flake8 +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.github/workflows/publish.yml +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/.github/workflows/tests.yml +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/AGENTS.colleague.md +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/LICENSE +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/culture.yaml +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/learn/__init__.py +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/learn/__main__.py +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/learn/cli/__init__.py +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/learn/cli/_commands/__init__.py +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/learn/cli/_commands/cli.py +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/learn/cli/_commands/doctor.py +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/learn/cli/_commands/explain.py +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/learn/cli/_commands/learn.py +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/learn/cli/_commands/overview.py +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/learn/cli/_commands/whoami.py +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/learn/cli/_errors.py +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/learn/cli/_output.py +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/learn/explain/__init__.py +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/learn/explain/catalog.py +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/sonar-project.properties +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/tests/__init__.py +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/tests/test_cli.py +0 -0
- {learn_cli-0.4.0 → learn_cli-0.4.2}/tests/test_cli_introspection.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
agentculture-org-learn-is-live-one-learning-hub-in
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
agentculture-org-learn-is-live-one-learning-hub-in
|
|
@@ -0,0 +1,563 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "agentculture-org-learn-is-live-one-learning-hub-in",
|
|
3
|
+
"title": "agentculture.org/learn is live: one learning hub in org's design where humans and agents learn French, Spanish, and agent-team leadership through stories, scored exercises, and adaptive never-ending lessons \u2014 signed-in learners see their cross-subject journey (progress, scores, streaks, what-next); visitors get an elegant tour \u2014 and the same experience is served coherently over the learn CLI, MCP server, and web site, with french-cli, spanish-cli, and culture-guide uplifted to that bar.",
|
|
4
|
+
"schema_version": 2,
|
|
5
|
+
"status": "exported",
|
|
6
|
+
"created": "2026-07-10T23:34:50Z",
|
|
7
|
+
"updated": "2026-07-10T23:49:23Z",
|
|
8
|
+
"claims": [
|
|
9
|
+
{
|
|
10
|
+
"id": "c1",
|
|
11
|
+
"kind": "announcement",
|
|
12
|
+
"text": "agentculture.org/learn is live: one learning hub in org's design where humans and agents learn French, Spanish, and agent-team leadership through stories, scored exercises, and adaptive never-ending lessons \u2014 signed-in learners see their cross-subject journey (progress, scores, streaks, what-next); visitors get an elegant tour \u2014 and the same experience is served coherently over the learn CLI, MCP server, and web site, with french-cli, spanish-cli, and culture-guide uplifted to that bar.",
|
|
13
|
+
"origin": "user",
|
|
14
|
+
"status": "confirmed",
|
|
15
|
+
"honesty_conditions": [
|
|
16
|
+
{
|
|
17
|
+
"id": "h10",
|
|
18
|
+
"text": "The announced walk actually works on the live site: a fresh visitor tours a module and reads a sample story; a signed-in learner runs a scored lesson and sees progress move \u2014 on phone and desktop.",
|
|
19
|
+
"status": "confirmed",
|
|
20
|
+
"instruction": ""
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"hard_questions": [],
|
|
24
|
+
"links": [],
|
|
25
|
+
"instruction": "Verify at launch by walking both journeys \u2014 signed-out tour, signed-in scored lesson \u2014 on agentculture.org/learn, from a phone and a desktop."
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "c2",
|
|
29
|
+
"kind": "audience",
|
|
30
|
+
"text": "Human learners (web/phone and CLI) and AI agents (over MCP) learning subjects step by step; plus the AgentCulture operator who maintains the subject repos and the org site.",
|
|
31
|
+
"origin": "user",
|
|
32
|
+
"status": "confirmed",
|
|
33
|
+
"honesty_conditions": [
|
|
34
|
+
{
|
|
35
|
+
"id": "h11",
|
|
36
|
+
"text": "Each audience has a first-class path (web human, CLI human, MCP agent) with an acceptance test per path \u2014 none is a degraded afterthought.",
|
|
37
|
+
"status": "confirmed",
|
|
38
|
+
"instruction": ""
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"hard_questions": [],
|
|
42
|
+
"links": [],
|
|
43
|
+
"instruction": "One acceptance test per audience: web (Playwright, signed-in and signed-out), CLI (pytest golden --json transcripts), agent (agentfront.testing call_mcp)."
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "c3",
|
|
47
|
+
"kind": "before_state",
|
|
48
|
+
"text": "learn-cli is a template scaffold (identity verbs only); french-cli/spanish-cli/culture-guide are standalone tutors with uneven UX and no shared profile; agentculture.org (owned by ../org) has no /learn section; no stories/scores/adaptive loop exists anywhere.",
|
|
49
|
+
"origin": "user",
|
|
50
|
+
"status": "confirmed",
|
|
51
|
+
"honesty_conditions": [
|
|
52
|
+
{
|
|
53
|
+
"id": "h12",
|
|
54
|
+
"text": "Repo-state facts re-verified at build kickoff (siblings move); the spec's before-state matches HEAD of all five repos on the day building starts.",
|
|
55
|
+
"status": "confirmed",
|
|
56
|
+
"instruction": ""
|
|
57
|
+
}
|
|
58
|
+
],
|
|
59
|
+
"hard_questions": [],
|
|
60
|
+
"links": [],
|
|
61
|
+
"instruction": "Re-verify sibling repo state at build kickoff (french/spanish/culture-guide/org/agentfront HEAD); amend the spec if any moved."
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"id": "c4",
|
|
65
|
+
"kind": "after_state",
|
|
66
|
+
"text": "learn-cli is the learner platform: a subject registry fronting french-cli, spanish-cli, and culture-guide, where every subject offers stories, progress tracking, scores, repeatable lessons, and adaptive never-ending progression, behind one cross-subject learner profile.",
|
|
67
|
+
"origin": "user",
|
|
68
|
+
"status": "confirmed",
|
|
69
|
+
"honesty_conditions": [
|
|
70
|
+
{
|
|
71
|
+
"id": "h13",
|
|
72
|
+
"text": "'learn subjects' lists all three subjects passing the conformance gate, and a learner can start, score, repeat, and resume a lesson in each of french, spanish, and culture-guide.",
|
|
73
|
+
"status": "confirmed",
|
|
74
|
+
"instruction": ""
|
|
75
|
+
}
|
|
76
|
+
],
|
|
77
|
+
"hard_questions": [],
|
|
78
|
+
"links": [],
|
|
79
|
+
"instruction": "Build order: subject registry + 'learn subject doctor' conformance gate in learn-cli; implement the contract verbs in french-cli and spanish-cli from one shared spec; adapt culture-guide's teach noun; 'learn subjects --json' must list all three as conformant."
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "c5",
|
|
83
|
+
"kind": "after_state",
|
|
84
|
+
"text": "agentculture.org/learn serves the hub in org's existing design language \u2014 one sub-page per module \u2014 built so org can load it into the site easily and the whole site stays coherent.",
|
|
85
|
+
"origin": "user",
|
|
86
|
+
"status": "confirmed",
|
|
87
|
+
"honesty_conditions": [
|
|
88
|
+
{
|
|
89
|
+
"id": "h14",
|
|
90
|
+
"text": "org maintainers can preview /learn as a normal Cloudflare Pages preview and sign off that it reads as one site (same tokens, fonts, nav, motion rules); the /learn nav link and directory entry land as an org PR they approve.",
|
|
91
|
+
"status": "confirmed",
|
|
92
|
+
"instruction": ""
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"hard_questions": [],
|
|
96
|
+
"links": [],
|
|
97
|
+
"instruction": "File a coordination issue on org (communicate skill) proposing: /learn nav link (Header+Footer, a two-file edit), the site.ts learn-cli entry pointing at /learn/, and the Cloudflare route for agentculture.org/learn \u2192 learn-cli's Pages project; land as org-reviewed PRs."
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"id": "c6",
|
|
101
|
+
"kind": "after_state",
|
|
102
|
+
"text": "The /learn site looks different signed-in vs signed-out: signed-out visitors get the elegant public tour (subject catalog, sample stories, module pages); signed-in learners get the resource-backed personal experience (their progress, scores, streaks, adaptive next lesson).",
|
|
103
|
+
"origin": "user",
|
|
104
|
+
"status": "confirmed",
|
|
105
|
+
"honesty_conditions": [
|
|
106
|
+
{
|
|
107
|
+
"id": "h15",
|
|
108
|
+
"text": "Signed-out pages are fully static and make zero API or model calls (verifiable in the network log); every learner-specific element has a designed signed-out state (invitation, sample, or lock) \u2014 no broken half-empty panels.",
|
|
109
|
+
"status": "confirmed",
|
|
110
|
+
"instruction": ""
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"hard_questions": [],
|
|
114
|
+
"links": [],
|
|
115
|
+
"instruction": "Signed-out pages are pure static Astro output; signed-in panels hydrate client-side after a session check against the learn API; add a test that the signed-out network log contains zero API/model calls."
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "c7",
|
|
119
|
+
"kind": "why_it_matters",
|
|
120
|
+
"text": "Learners get one professional door to every subject with durable motivation loops (stories, streaks, scores, what-next), and the mesh proves the subject interface generalizes beyond languages instead of every tutor reinventing its own experience.",
|
|
121
|
+
"origin": "user",
|
|
122
|
+
"status": "confirmed",
|
|
123
|
+
"honesty_conditions": [
|
|
124
|
+
{
|
|
125
|
+
"id": "h16",
|
|
126
|
+
"text": "Adding a hypothetical 4th subject requires only: a registry entry, a conformant subject CLI, and content \u2014 zero new platform code in learn-cli; the claim is tested by keeping the registry data-driven.",
|
|
127
|
+
"status": "confirmed",
|
|
128
|
+
"instruction": ""
|
|
129
|
+
}
|
|
130
|
+
],
|
|
131
|
+
"hard_questions": [],
|
|
132
|
+
"links": [],
|
|
133
|
+
"instruction": "Keep the registry data-driven (a subjects registry file, not code per subject); prove generalization with a dummy fourth-subject fixture in learn-cli's test suite."
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"id": "c8",
|
|
137
|
+
"kind": "requirement",
|
|
138
|
+
"text": "Stories are first-class learning content: the language modules (french, spanish) teach through stories, and culture-guide gains narrative/story-based learning as part of its experience uplift.",
|
|
139
|
+
"origin": "user",
|
|
140
|
+
"status": "confirmed",
|
|
141
|
+
"honesty_conditions": [
|
|
142
|
+
{
|
|
143
|
+
"id": "h1",
|
|
144
|
+
"text": "Stories are a contract surface, not prose: each language module ships a level-tagged story library (text + glossary + comprehension exercises) reachable via a registry verb, and culture-guide ships narrative scenarios in the same shape \u2014 verified by the same conformance check for all three subjects.",
|
|
145
|
+
"status": "confirmed",
|
|
146
|
+
"instruction": ""
|
|
147
|
+
}
|
|
148
|
+
],
|
|
149
|
+
"hard_questions": [],
|
|
150
|
+
"links": [],
|
|
151
|
+
"instruction": "Define the story schema in the subject contract; pre-generate starter graded ladders via cloudai-cli in batch; human-review; commit as content files in french-cli and spanish-cli; author 3+ narrative scenarios for culture-guide."
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"id": "c9",
|
|
155
|
+
"kind": "requirement",
|
|
156
|
+
"text": "Progress tracking, scores, repeatable lessons, adaptive difficulty, and never-ending progression are expressed in the subject-plugin contract so every subject exposes them uniformly (adding subject #4 is a registration, not a fork).",
|
|
157
|
+
"origin": "user",
|
|
158
|
+
"status": "confirmed",
|
|
159
|
+
"honesty_conditions": [
|
|
160
|
+
{
|
|
161
|
+
"id": "h2",
|
|
162
|
+
"text": "The subject-plugin contract exists as a written spec plus an executable conformance gate (e.g. 'learn subject doctor <subject>'), and french, spanish, AND culture-guide all pass it \u2014 progress/scores/next-lesson/stories return machine-readable JSON that the web, CLI, and MCP faces all consume unchanged.",
|
|
163
|
+
"status": "confirmed",
|
|
164
|
+
"instruction": ""
|
|
165
|
+
}
|
|
166
|
+
],
|
|
167
|
+
"hard_questions": [],
|
|
168
|
+
"links": [],
|
|
169
|
+
"instruction": "Write the subject-plugin contract spec FIRST (learn-cli docs/specs/): verbs, JSON schemas, exit codes, state division; ship 'learn subject doctor <subject>' as the executable conformance gate and wire it into each subject repo's CI."
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"id": "c10",
|
|
173
|
+
"kind": "requirement",
|
|
174
|
+
"text": "The uplift is multi-repo by design: coordinated changes land in learn-cli, french-cli, spanish-cli, culture-guide, and org \u2014 every surface is touched to make the experience work end to end.",
|
|
175
|
+
"origin": "user",
|
|
176
|
+
"status": "confirmed",
|
|
177
|
+
"honesty_conditions": [
|
|
178
|
+
{
|
|
179
|
+
"id": "h3",
|
|
180
|
+
"text": "The uplift lands as tracked, cross-linked issues and PRs in learn-cli, french-cli, spanish-cli, culture-guide, and org \u2014 and the shipped /learn pages render content actually produced by the subject repos (not copies hand-pasted into org).",
|
|
181
|
+
"status": "confirmed",
|
|
182
|
+
"instruction": ""
|
|
183
|
+
}
|
|
184
|
+
],
|
|
185
|
+
"hard_questions": [],
|
|
186
|
+
"links": [],
|
|
187
|
+
"instruction": "Open cross-linked tracked issues on french-cli, spanish-cli, culture-guide, and org from the exported spec (communicate skill); sequence: contract spec \u2192 subject implementations \u2192 learn faces \u2192 site + org integration \u2192 sign-in layer."
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"id": "c11",
|
|
191
|
+
"kind": "boundary",
|
|
192
|
+
"text": "learn-cli hosts and unifies; it does not reimplement tutor logic \u2014 progression, lesson content, and subject expertise stay in each subject repo, driven as external runtimes.",
|
|
193
|
+
"origin": "user",
|
|
194
|
+
"status": "confirmed",
|
|
195
|
+
"honesty_conditions": [
|
|
196
|
+
{
|
|
197
|
+
"id": "h17",
|
|
198
|
+
"text": "learn-cli's repo contains no subject-domain content or progression logic; deleting a subject's registry entry cleanly removes it from all three faces.",
|
|
199
|
+
"status": "confirmed",
|
|
200
|
+
"instruction": ""
|
|
201
|
+
}
|
|
202
|
+
],
|
|
203
|
+
"hard_questions": [],
|
|
204
|
+
"links": [],
|
|
205
|
+
"instruction": "Enforce in review: learn-cli never gains subject content or progression logic; subjects are driven only through the subprocess --json contract; deleting a registry entry removes a subject from all faces."
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"id": "c12",
|
|
209
|
+
"kind": "boundary",
|
|
210
|
+
"text": "org's existing elegant design is kept, not redesigned: /learn adopts org's layout, typography, and theme; any new components extend that system rather than fork it.",
|
|
211
|
+
"origin": "user",
|
|
212
|
+
"status": "confirmed",
|
|
213
|
+
"honesty_conditions": [
|
|
214
|
+
{
|
|
215
|
+
"id": "h18",
|
|
216
|
+
"text": "No new fonts, palette tokens, or layout primitives are introduced on /learn beyond org's global.css system; any genuinely new component (progress ring, streak flame, story reader) is built from existing tokens and offered back to org.",
|
|
217
|
+
"status": "confirmed",
|
|
218
|
+
"instruction": ""
|
|
219
|
+
}
|
|
220
|
+
],
|
|
221
|
+
"hard_questions": [],
|
|
222
|
+
"links": [],
|
|
223
|
+
"instruction": "Copy org's global.css, Layout, and components verbatim into learn-cli/site-astro; extend only with existing tokens; new learning components (progress ring, streak, story reader) reuse the token system and get offered upstream to org; visual QA in both themes."
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"id": "c13",
|
|
227
|
+
"kind": "decision",
|
|
228
|
+
"text": "Per the brief, the three faces (CLI 'learn', MCP server, web) derive from one agentfront registry rather than three hand-rolled renderers, so the human page, the agent tool, and the --json answer cannot drift.",
|
|
229
|
+
"origin": "user",
|
|
230
|
+
"status": "confirmed",
|
|
231
|
+
"honesty_conditions": [],
|
|
232
|
+
"hard_questions": [],
|
|
233
|
+
"links": [],
|
|
234
|
+
"instruction": ""
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"id": "c14",
|
|
238
|
+
"kind": "success_signal",
|
|
239
|
+
"text": "A signed-out visitor reads a sample story and the module tour on agentculture.org/learn; a signed-in learner completes a scored lesson in each of the three subjects from the web, sees their streak/score/what-next update, and the identical progress is readable via 'learn' --json and the MCP tools.",
|
|
240
|
+
"origin": "llm",
|
|
241
|
+
"status": "confirmed",
|
|
242
|
+
"honesty_conditions": [
|
|
243
|
+
{
|
|
244
|
+
"id": "h23",
|
|
245
|
+
"text": "The success walk is scripted and repeatable: an end-to-end check (or documented manual QA script) covers signed-out story reading, one scored lesson per subject signed-in, and progress parity across web, 'learn' --json, and MCP \u2014 run before declaring launch.",
|
|
246
|
+
"status": "confirmed",
|
|
247
|
+
"instruction": ""
|
|
248
|
+
}
|
|
249
|
+
],
|
|
250
|
+
"hard_questions": [],
|
|
251
|
+
"links": [],
|
|
252
|
+
"instruction": "Script the success walk as the launch gate: signed-out story read; one scored lesson per subject signed-in; assert progress parity across web, 'learn' --json, and MCP. Run it before announcing."
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"id": "c15",
|
|
256
|
+
"kind": "assumption",
|
|
257
|
+
"text": "culture-guide's 'teach' directive pattern (the subject CLI stores curriculum + per-learner mastery state and emits a structured teaching directive; the driving agent/LLM does the conversational tutoring and records results back) is a viable spine for the subject-plugin contract \u2014 subjects stay LLM-free engines, tutoring intelligence lives in the driver.",
|
|
258
|
+
"origin": "llm",
|
|
259
|
+
"status": "confirmed",
|
|
260
|
+
"honesty_conditions": [],
|
|
261
|
+
"hard_questions": [],
|
|
262
|
+
"links": [],
|
|
263
|
+
"instruction": ""
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"id": "c16",
|
|
267
|
+
"kind": "before_state",
|
|
268
|
+
"text": "Verified by reading the repos: french-cli and spanish-cli are unmodified template scaffolds (6 introspection verbs, --json contract, zero tutor domain \u2014 no lesson/story/practice verbs, no content, no learner state, no LLM path). culture-guide's teach noun (5-part/35-concept curriculum, mastery ladder, per-learner JSON state, agent-drives-the-teaching directive pattern) is the mesh's only working tutor engine.",
|
|
269
|
+
"origin": "user",
|
|
270
|
+
"status": "confirmed",
|
|
271
|
+
"honesty_conditions": [
|
|
272
|
+
{
|
|
273
|
+
"id": "h19",
|
|
274
|
+
"text": "The subject contract spec is written once and lands in french-cli and spanish-cli as the same implementation (kept consistent the way the template siblings are), and culture-guide's teach verbs map onto it without breaking its existing users.",
|
|
275
|
+
"status": "confirmed",
|
|
276
|
+
"instruction": ""
|
|
277
|
+
}
|
|
278
|
+
],
|
|
279
|
+
"hard_questions": [],
|
|
280
|
+
"links": [],
|
|
281
|
+
"instruction": "Implement the contract as one shared spec applied identically to french-cli and spanish-cli (byte-consistent modulo language token, like the template siblings); write a culture-guide adapter mapping teach subverbs to contract verbs without breaking existing teach users."
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"id": "c17",
|
|
285
|
+
"kind": "decision",
|
|
286
|
+
"text": "Because french/spanish are empty, the tutor verb surface is DESIGNED FRESH in the subject-plugin contract \u2014 canonical verbs: overview, progress, advice, story (list/read), lesson (start/next/repeat), practice, record, doctor \u2014 and implemented from one shared spec in french-cli and spanish-cli (kept byte-consistent like siblings), while culture-guide maps its existing teach subverbs onto the same contract.",
|
|
287
|
+
"origin": "llm",
|
|
288
|
+
"status": "confirmed",
|
|
289
|
+
"honesty_conditions": [],
|
|
290
|
+
"hard_questions": [],
|
|
291
|
+
"links": [],
|
|
292
|
+
"instruction": ""
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"id": "c18",
|
|
296
|
+
"kind": "requirement",
|
|
297
|
+
"text": "Every subject verb the portal consumes emits stable --json (the contract IS the JSON schemas + exit codes, versioned), so learn-cli can drive subjects as external runtimes without importing their code.",
|
|
298
|
+
"origin": "llm",
|
|
299
|
+
"status": "confirmed",
|
|
300
|
+
"honesty_conditions": [
|
|
301
|
+
{
|
|
302
|
+
"id": "h4",
|
|
303
|
+
"text": "Contract payloads are versioned schemas checked by an executable conformance gate that runs in each subject repo's CI \u2014 a subject that drifts fails its own build, not learn-cli's runtime.",
|
|
304
|
+
"status": "confirmed",
|
|
305
|
+
"instruction": ""
|
|
306
|
+
}
|
|
307
|
+
],
|
|
308
|
+
"hard_questions": [],
|
|
309
|
+
"links": [],
|
|
310
|
+
"instruction": "Version the contract schemas (schema_version field); implement 'learn subject doctor' validation against them; subjects pin the contract version they satisfy."
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"id": "c19",
|
|
314
|
+
"kind": "before_state",
|
|
315
|
+
"text": "Verified by reading ../org: the site is Astro output:'static' (no adapter, no auth, no SSR), design system self-contained (global.css tokens + 5 components + Fraunces/Albert Sans fonts, auto dark mode, dawn-mesh motif), content is typed src/data/*.ts + hand-written .astro pages (no markdown/collections), deployed to Cloudflare Pages project 'agentculture-org' via wrangler; no cross-repo content federation exists \u2014 sibling coordination is GitHub issues; no /learn route, and org's Agents directory links learn-cli to GitHub.",
|
|
316
|
+
"origin": "user",
|
|
317
|
+
"status": "confirmed",
|
|
318
|
+
"honesty_conditions": [
|
|
319
|
+
{
|
|
320
|
+
"id": "h20",
|
|
321
|
+
"text": "Nothing in the /learn integration forces org to adopt SSR, an adapter, or a build-time dependency on learn-cli \u2014 org's static-only house style is preserved; coordination lands as reviewable org PRs + issues.",
|
|
322
|
+
"status": "confirmed",
|
|
323
|
+
"instruction": ""
|
|
324
|
+
}
|
|
325
|
+
],
|
|
326
|
+
"hard_questions": [],
|
|
327
|
+
"links": [],
|
|
328
|
+
"instruction": "org's repo changes stay minimal and static: site.ts entry + Header/Footer nav arrays; the /learn route lands as Cloudflare config through the operator-owned cultureflare path \u2014 org never gains a build-time dependency on learn-cli."
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
"id": "c20",
|
|
332
|
+
"kind": "decision",
|
|
333
|
+
"text": "Web face shape: learn-cli gets its own site-astro/ (the org/culture-tools house repo shape), copying org's design system verbatim (global.css tokens, Layout, Header/Footer/PageHero/Mark components, both fonts) so /learn is visually indistinguishable from the rest of agentculture.org; it deploys as learn-cli's own Cloudflare Pages project, and is mounted at agentculture.org/learn via Cloudflare routing \u2014 coordinated with org (nav link + directory entry pointing to /learn/) and the cultureflare-owned zone, negotiated through GitHub issues.",
|
|
334
|
+
"origin": "llm",
|
|
335
|
+
"status": "confirmed",
|
|
336
|
+
"honesty_conditions": [],
|
|
337
|
+
"hard_questions": [],
|
|
338
|
+
"links": [],
|
|
339
|
+
"instruction": ""
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
"id": "c21",
|
|
343
|
+
"kind": "decision",
|
|
344
|
+
"text": "Sign-in is the resource gate (the 'since this requires resources' rationale made explicit): signed-out visitors get only pre-built static content \u2014 subject catalog, module sub-pages, sample stories, the tour \u2014 which costs nothing to serve; LLM-backed live tutoring, progress/score writes, streaks, and adaptive what-next require a signed-in session backed by the learn API.",
|
|
345
|
+
"origin": "llm",
|
|
346
|
+
"status": "confirmed",
|
|
347
|
+
"honesty_conditions": [],
|
|
348
|
+
"hard_questions": [],
|
|
349
|
+
"links": [],
|
|
350
|
+
"instruction": ""
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"id": "c22",
|
|
354
|
+
"kind": "decision",
|
|
355
|
+
"text": "The dynamic layer stays thin and Cloudflare-native: a small learn API (Cloudflare Pages Functions/Worker + KV/D1 for learner state) handles auth sessions, progress reads/writes, and brokers lesson/story generation to the model-access sibling; the static shell stays org-house-style, with signed-in panels hydrating client-side.",
|
|
356
|
+
"origin": "llm",
|
|
357
|
+
"status": "confirmed",
|
|
358
|
+
"honesty_conditions": [
|
|
359
|
+
{
|
|
360
|
+
"id": "h8",
|
|
361
|
+
"text": "The hosting choice is recorded with a cost-when-busy note before build: Cloudflare Pages static = free; Workers/Functions paid plan ~$5/mo + per-request beyond free tier; KV/D1 usage-priced; live tutoring tokens per-use via cloudai/ec2bedrock \u2014 and signed-out traffic can never trigger a model call.",
|
|
362
|
+
"status": "confirmed",
|
|
363
|
+
"instruction": ""
|
|
364
|
+
}
|
|
365
|
+
],
|
|
366
|
+
"hard_questions": [],
|
|
367
|
+
"links": [],
|
|
368
|
+
"instruction": ""
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
"id": "c23",
|
|
372
|
+
"kind": "before_state",
|
|
373
|
+
"text": "Verified by reading ../agentfront: agentfront 0.20.0 is an importable runtime library \u2014 one App registry of docs+tools emits the CLI, a stdio MCP server (single 'run' tool), an HTTP face, and a TAUI, with surfaces_agree() proving they enumerate identically. Its HTTP face serves raw markdown + sitemap.xml + llms.txt from a live WSGI app \u2014 no HTML, no theming, no static export \u2014 and it has zero auth/user-state primitives.",
|
|
374
|
+
"origin": "user",
|
|
375
|
+
"status": "confirmed",
|
|
376
|
+
"honesty_conditions": [
|
|
377
|
+
{
|
|
378
|
+
"id": "h21",
|
|
379
|
+
"text": "agentfront is consumed as a versioned dependency (>=0.20) \u2014 gaps learn-cli hits (HTTP-face auth hooks, remote MCP transport, static export) are filed as upstream agentfront issues, never forked or monkey-patched.",
|
|
380
|
+
"status": "confirmed",
|
|
381
|
+
"instruction": ""
|
|
382
|
+
}
|
|
383
|
+
],
|
|
384
|
+
"hard_questions": [],
|
|
385
|
+
"links": [],
|
|
386
|
+
"instruction": "Depend on agentfront>=0.20 in learn-cli's pyproject (with the [mcp] extra); file upstream agentfront issues for any gap hit (remote MCP transport, HTTP-face hooks, static export) instead of forking."
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
"id": "c24",
|
|
390
|
+
"kind": "decision",
|
|
391
|
+
"text": "The web face splits by consumer, both fed from one registry: agentfront's HTTP face is the agent-readable web (markdown, sitemap, llms.txt); the human web is the Astro static site rendering the SAME registry-sourced content through org's design. A build step ('learn site export' \u2192 typed content JSON/markdown consumed by site-astro) plus an extended surfaces-agreement test keep the human pages from drifting \u2014 honoring the brief's one-registry rule without asking agentfront to render HTML.",
|
|
392
|
+
"origin": "llm",
|
|
393
|
+
"status": "confirmed",
|
|
394
|
+
"honesty_conditions": [
|
|
395
|
+
{
|
|
396
|
+
"id": "h9",
|
|
397
|
+
"text": "The Astro pages are generated from the same registry/content files the CLI and MCP serve, and a CI check fails when a module exists in the registry without a site page (or vice versa) \u2014 coherence is enforced, not hoped for.",
|
|
398
|
+
"status": "confirmed",
|
|
399
|
+
"instruction": ""
|
|
400
|
+
}
|
|
401
|
+
],
|
|
402
|
+
"hard_questions": [],
|
|
403
|
+
"links": [],
|
|
404
|
+
"instruction": ""
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"id": "c25",
|
|
408
|
+
"kind": "decision",
|
|
409
|
+
"text": "Model access and cost shape: story/lesson content is pre-generated in batch through cloudai-cli (or ec2bedrock-cli), human-reviewed, and COMMITTED to each subject repo as content files \u2014 so the static site and signed-out visitors cost ~zero to serve; only signed-in interactive tutoring (live conversation, grading, generation of fresh personal content) makes live model calls, brokered by the learn API through the same siblings. No bespoke provider client anywhere.",
|
|
410
|
+
"origin": "llm",
|
|
411
|
+
"status": "confirmed",
|
|
412
|
+
"honesty_conditions": [],
|
|
413
|
+
"hard_questions": [],
|
|
414
|
+
"links": [],
|
|
415
|
+
"instruction": ""
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"id": "c26",
|
|
419
|
+
"kind": "decision",
|
|
420
|
+
"text": "Learner identity across faces: 'learn auth login' (device-code flow) links the CLI and MCP to the same learner account the web uses; local XDG state acts as an offline cache that syncs through the learn API. Anonymous CLI/MCP use stays local-only and fully functional \u2014 sign-in adds cross-device sync, streak continuity, and the web dashboard.",
|
|
421
|
+
"origin": "llm",
|
|
422
|
+
"status": "confirmed",
|
|
423
|
+
"honesty_conditions": [],
|
|
424
|
+
"hard_questions": [],
|
|
425
|
+
"links": [],
|
|
426
|
+
"instruction": ""
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
"id": "c27",
|
|
430
|
+
"kind": "requirement",
|
|
431
|
+
"text": "Division of intelligence: subject CLIs own content + per-learner mastery (culture-guide's directive pattern); learn-cli owns the uniform motivation layer \u2014 numeric scores per exercise, per-subject and cross-subject streaks, review queues, and adaptive what-next computed deterministically from the contract's recorded results \u2014 so every subject gets scores/streaks/adaptivity without reimplementing them.",
|
|
432
|
+
"origin": "llm",
|
|
433
|
+
"status": "confirmed",
|
|
434
|
+
"honesty_conditions": [
|
|
435
|
+
{
|
|
436
|
+
"id": "h5",
|
|
437
|
+
"text": "Scores, streaks, and what-next are deterministic, unit-tested functions of recorded history \u2014 the same history yields the same numbers on web, CLI, and MCP; no LLM in the scoring path.",
|
|
438
|
+
"status": "confirmed",
|
|
439
|
+
"instruction": ""
|
|
440
|
+
}
|
|
441
|
+
],
|
|
442
|
+
"hard_questions": [],
|
|
443
|
+
"links": [],
|
|
444
|
+
"instruction": "Implement scoring/streak/what-next as a pure module in learn-cli (deterministic functions over recorded history), unit-tested with golden histories; subjects only report raw results via 'record'."
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
"id": "c28",
|
|
448
|
+
"kind": "requirement",
|
|
449
|
+
"text": "Never-ending learning: completing a track flips the learner into maintenance+depth mode, never a dead end \u2014 review queues driven by time-decayed mastery, repeatable lessons at higher difficulty, and fresh stories rotated in (pre-generated batches) \u2014 so there is always a meaningful next action.",
|
|
450
|
+
"origin": "llm",
|
|
451
|
+
"status": "confirmed",
|
|
452
|
+
"honesty_conditions": [
|
|
453
|
+
{
|
|
454
|
+
"id": "h6",
|
|
455
|
+
"text": "A learner who has completed every authored item still receives a concrete next action (review of decayed mastery, a harder repeat, or a fresh story) \u2014 proven by a test that simulates a fully-completed track.",
|
|
456
|
+
"status": "confirmed",
|
|
457
|
+
"instruction": ""
|
|
458
|
+
}
|
|
459
|
+
],
|
|
460
|
+
"hard_questions": [],
|
|
461
|
+
"links": [],
|
|
462
|
+
"instruction": "Implement time-decayed mastery + review-queue computation in learn-cli's motivation layer; add the completed-track simulation test proving a next action always exists; wire fresh-story rotation to the batch generation pipeline."
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
"id": "c29",
|
|
466
|
+
"kind": "requirement",
|
|
467
|
+
"text": "A story is a shared content schema across subjects: id, difficulty level, title, body, glossary/annotations, comprehension exercises (and an audio slot reserved for later). Language stories form a graded-reader ladder (beginner \u2192 advanced); culture-guide stories are narrative scenarios (e.g. an agent-team incident the learner reasons through). Stories live as committed content files in each subject repo.",
|
|
468
|
+
"origin": "llm",
|
|
469
|
+
"status": "confirmed",
|
|
470
|
+
"honesty_conditions": [
|
|
471
|
+
{
|
|
472
|
+
"id": "h7",
|
|
473
|
+
"text": "One story schema validates for all three subjects, and each language module ships at least a starter graded ladder (e.g. ~10 stories across 3+ levels) while culture-guide ships at least 3 narrative scenarios at launch.",
|
|
474
|
+
"status": "confirmed",
|
|
475
|
+
"instruction": ""
|
|
476
|
+
}
|
|
477
|
+
],
|
|
478
|
+
"hard_questions": [],
|
|
479
|
+
"links": [],
|
|
480
|
+
"instruction": "Ship the story JSON schema in the contract; starter content: >=10 stories across >=3 levels per language module, >=3 culture-guide scenarios; validate all content files against the schema in each subject's CI."
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
"id": "c30",
|
|
484
|
+
"kind": "decision",
|
|
485
|
+
"text": "Identity provider recommendation: GitHub OAuth as the v1 sign-in (the audience is developers and agents; the mesh is GitHub-native; no passwords/PII stored \u2014 only the GitHub id, display name, and learner state), implemented in the learn API worker with short-lived session cookies. Email magic-link can be added later; mesh-identity federation is a follow-up.",
|
|
486
|
+
"origin": "llm",
|
|
487
|
+
"status": "confirmed",
|
|
488
|
+
"honesty_conditions": [],
|
|
489
|
+
"hard_questions": [],
|
|
490
|
+
"links": [],
|
|
491
|
+
"instruction": ""
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
"id": "c31",
|
|
495
|
+
"kind": "requirement",
|
|
496
|
+
"text": "The /learn surface is served same-origin at agentculture.org/learn (never a separate subdomain or visibly separate site), sharing org's design tokens AND its cross-document view-transition navigation, so moving between org pages and learn pages never reloads the 'whole site' feel \u2014 one continuous site to the visitor.",
|
|
497
|
+
"origin": "user",
|
|
498
|
+
"status": "confirmed",
|
|
499
|
+
"honesty_conditions": [
|
|
500
|
+
{
|
|
501
|
+
"id": "h22",
|
|
502
|
+
"text": "Navigating agentculture.org \u2192 /learn and back is same-origin, keeps the shared header/nav, and uses the same @view-transition cross-document fade org uses \u2014 verified by a navigation test and manual QA in both themes.",
|
|
503
|
+
"status": "confirmed",
|
|
504
|
+
"instruction": ""
|
|
505
|
+
}
|
|
506
|
+
],
|
|
507
|
+
"hard_questions": [],
|
|
508
|
+
"links": [],
|
|
509
|
+
"instruction": "Mount learn-cli's Pages output under the agentculture.org zone via Cloudflare routing (coordinated through org/cultureflare); copy org's @view-transition CSS and Layout so cross-document navigation transitions smoothly; never link /learn as an external-feeling site."
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
"id": "c32",
|
|
513
|
+
"kind": "success_signal",
|
|
514
|
+
"text": "Measurable launch bar (quantifying the confirmed walk): all 3 subjects pass 'learn subject doctor'; >=10 stories x >=3 levels per language module and >=3 culture-guide scenarios ship; the signed-out /learn pages make exactly 0 API/model calls; the E2E success walk passes with progress parity across all 3 faces; /learn page styling introduces 0 new design tokens beyond org's system.",
|
|
515
|
+
"origin": "llm",
|
|
516
|
+
"status": "confirmed",
|
|
517
|
+
"honesty_conditions": [
|
|
518
|
+
{
|
|
519
|
+
"id": "h24",
|
|
520
|
+
"text": "Every number in the launch bar is checked by CI or the scripted launch gate \u2014 none is asserted by hand.",
|
|
521
|
+
"status": "confirmed",
|
|
522
|
+
"instruction": ""
|
|
523
|
+
}
|
|
524
|
+
],
|
|
525
|
+
"hard_questions": [],
|
|
526
|
+
"links": [],
|
|
527
|
+
"instruction": "Wire each measurable into automation: conformance in subject CIs; content counts via schema validation; zero-API static check via network-log test; the E2E walk as the launch gate script; token audit via CSS diff against org's global.css."
|
|
528
|
+
}
|
|
529
|
+
],
|
|
530
|
+
"open_vagueness": [
|
|
531
|
+
{
|
|
532
|
+
"id": "v3",
|
|
533
|
+
"text": "Exact adaptivity algorithm (SM-2-style spaced repetition vs LLM-judged mastery vs hybrid) \u2014 can be chosen during build once the contract exposes scores + history; does not gate the contract design.",
|
|
534
|
+
"kind": "unknown_nonblocking",
|
|
535
|
+
"claim_id": null
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
"id": "v4",
|
|
539
|
+
"text": "Spoken practice (TTS/STT) \u2014 french/spanish's 'written and spoken' promise needs an audio pipeline and per-minute cost; defer to a follow-up phase, with the story schema's audio slot reserved.",
|
|
540
|
+
"kind": "follow_up",
|
|
541
|
+
"claim_id": null
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
"id": "v5",
|
|
545
|
+
"text": "Remote (HTTP) MCP transport \u2014 agentfront's MCP face is stdio-only today; a hosted 'agents learn over the network' endpoint would need transport work in agentfront or a shim. stdio covers local agents for v1.",
|
|
546
|
+
"kind": "unknown_nonblocking",
|
|
547
|
+
"claim_id": null
|
|
548
|
+
},
|
|
549
|
+
{
|
|
550
|
+
"id": "v6",
|
|
551
|
+
"text": "culture.dev cross-link via katvan once /learn is live (the brief's offer) \u2014 file the cross-link issue at launch.",
|
|
552
|
+
"kind": "follow_up",
|
|
553
|
+
"claim_id": null
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
"id": "v7",
|
|
557
|
+
"text": "Whether agent learners get their own profiles or act on behalf of a human learner's profile (MCP identity semantics) \u2014 v1 treats any authenticated account as a learner regardless of species; refine if agent-specific needs emerge.",
|
|
558
|
+
"kind": "unknown_nonblocking",
|
|
559
|
+
"claim_id": null
|
|
560
|
+
}
|
|
561
|
+
],
|
|
562
|
+
"scope_entries": []
|
|
563
|
+
}
|