@fernado03/zoo-flow 0.2.0 → 0.3.0

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fernado03/zoo-flow",
3
- "version": "0.2.0",
4
3
  "description": "Workflow control plane for Zoo Code.",
4
+ "version": "0.3.0",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "zoo-flow": "bin/zoo-flow.js"
@@ -23,10 +23,8 @@ _Avoid_: Purchase, transaction
23
23
  - MUST pick canonical term; aliases under `_Avoid_`.
24
24
  - MUST flag ambiguity + resolution.
25
25
  - Define term in 1–2 sentences: what it is, not behavior.
26
- - Include relationships/cardinality when obvious.
27
26
  - Include domain terms only; exclude generic programming terms.
28
27
  - Group under headings when useful.
29
- - Include example dialogue.
30
28
 
31
29
  ## Layout
32
30
 
@@ -3,6 +3,7 @@
3
3
  Draft skills. Excluded from plugin/top README until stable.
4
4
 
5
5
  - **[review](./review/SKILL.md)** — Review diff on Standards + Spec axes.
6
+ - **[teach](./teach/SKILL.md)** — Stateful teaching workspace (mission, glossary, resources, learning records).
6
7
  - **[writing-beats](./writing-beats/SKILL.md)** — Assemble article beat-by-beat.
7
8
  - **[writing-fragments](./writing-fragments/SKILL.md)** — Capture raw writing fragments.
8
9
  - **[writing-shape](./writing-shape/SKILL.md)** — Shape raw material into article.
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: teach
3
+ description: Teach a topic over multiple stateful sessions, treating the current directory as a teaching workspace. Tracks mission, glossary, resources, and learning records to ground every session and pace the user inside their zone of proximal development. Use when user asks to be taught a topic, wants to learn something over time, or mentions ongoing study.
4
+ disable-model-invocation: true
5
+ argument-hint: "What would you like to learn about?"
6
+ ---
7
+
8
+ # Teach
9
+
10
+ Stateful. Treat current directory as the teaching workspace.
11
+
12
+ ## Files
13
+
14
+ - `MISSION.md` — why user wants this; grounds every decision. Format: `mission-format.md`.
15
+ - `GLOSSARY.md` — canonical terms; all output conforms. Format: `glossary-format.md`.
16
+ - `RESOURCES.md` — trusted knowledge + community sources. Format: `resources-format.md`.
17
+ - `learning-records/NNNN-slug.md` — non-obvious lessons + prior knowledge. Format: `learning-record-format.md`.
18
+
19
+ ## Triad
20
+
21
+ - **Knowledge** — drawn from `RESOURCES.md`. Never parametric.
22
+ - **Skills** — exercises built from the knowledge.
23
+ - **Wisdom** — real-world community interaction via `RESOURCES.md`.
24
+
25
+ Topic mix varies: theoretical → knowledge-heavy; practical → skills-heavy.
26
+
27
+ ## Mission first
28
+
29
+ If `MISSION.md` missing or vague, interview before teaching. No mission = no grounding, abstract exercises, no signal for what's next.
30
+
31
+ ## Zone of proximal development
32
+
33
+ Pick next topic by:
34
+ 1. Read `learning-records/`.
35
+ 2. Align to `MISSION.md`.
36
+ 3. Pick tightest scope that still stretches the user.
37
+
38
+ User says "I already know X" → record in `learning-records/`.
39
+
40
+ ## Knowledge loop
41
+
42
+ 1. Pull from `RESOURCES.md`.
43
+ 2. Write HTML explainer to local file. Beautiful, glossary-correct.
44
+ 3. Give one-line CLI command to open it.
45
+ 4. Take questions; amend explainer or write a new one.
46
+ 5. Once user clearly owns the term, add to `GLOSSARY.md`.
47
+
48
+ ## Skills loop
49
+
50
+ Tools:
51
+ - Interactive HTML explainers with quizzes / in-browser drills.
52
+ - Step-through HTML guides for real-world tasks.
53
+ - In-agent scenario quizzes.
54
+
55
+ Every exercise closes a tight feedback loop.
56
+
57
+ ## Wisdom
58
+
59
+ Default: attempt an answer, then route to a high-reputation community from `RESOURCES.md`. If user opted out of communities, record it in `RESOURCES.md` and stop suggesting.
@@ -0,0 +1,35 @@
1
+ # GLOSSARY.md Format
2
+
3
+ Canonical language for the workspace. All explainers/exercises/records conform. Building it is itself learning: tight definition = compressed understanding.
4
+
5
+ ## Template
6
+
7
+ ```markdown
8
+ # {Topic} Glossary
9
+
10
+ {One or two sentence description of what this glossary covers.}
11
+
12
+ ## Terms
13
+
14
+ **Hypertrophy**:
15
+ Muscle growth driven by mechanical tension and metabolic stress over repeated training sessions.
16
+ _Avoid_: Bulking, getting big
17
+
18
+ **Progressive overload**:
19
+ Systematically increasing the demand on a muscle over time — via load, volume, or intensity.
20
+ _Avoid_: Pushing harder, levelling up
21
+
22
+ **RPE (Rate of Perceived Exertion)**:
23
+ A 1–10 self-rating of how hard a set felt, where 10 is failure and 8 means two reps left in the tank.
24
+ _Avoid_: Effort score, intensity rating
25
+ ```
26
+
27
+ ## Rules
28
+
29
+ - Add a term only when user demonstrates understanding. Glossary records compressed knowledge; it is not a dictionary to read.
30
+ - Be opinionated. Pick one canonical term; list rivals as `_Avoid_`.
31
+ - Tight: 1–2 sentences. Define what term IS, not how to do it.
32
+ - Use glossary's own terms inside other definitions. That's how complex terms compress.
33
+ - Group under subheadings when natural clusters emerge (`## Anatomy`, `## Programming`). Flat list fine otherwise.
34
+ - Flag ambiguities. "In this workspace, 'set' means working set."
35
+ - Revise in place. Stale entries lie.
@@ -0,0 +1,46 @@
1
+ # Learning Record Format
2
+
3
+ Live in `learning-records/`. Sequential numbering: `0001-slug.md`, `0002-slug.md`. Create directory lazily on first record.
4
+
5
+ Teaching equivalent of ADRs. Capture non-obvious lessons, key insights, stated prior knowledge. Steer future sessions; calibrate ZPD.
6
+
7
+ ## Template
8
+
9
+ ```markdown
10
+ # {Short title of what was learned or established}
11
+
12
+ {1-3 sentences: what was learned (or what prior knowledge was established), and why it matters for future sessions.}
13
+ ```
14
+
15
+ That is the whole format. A single paragraph counts. Value is recording _that_ this is now known and _why_ it changes what to teach next.
16
+
17
+ ## Optional sections
18
+
19
+ Use only when they add value. Most records skip these.
20
+
21
+ - **Status** frontmatter (`active | superseded by LR-NNNN`) — when an earlier understanding is replaced.
22
+ - **Evidence** — how the user demonstrated understanding. Useful when the claim might be revisited.
23
+ - **Implications** — what this unlocks/rules out. Worth recording when non-obvious.
24
+
25
+ ## Numbering
26
+
27
+ Scan `learning-records/`, take highest number, increment.
28
+
29
+ ## When to write
30
+
31
+ Write when any are true:
32
+
33
+ 1. User demonstrated genuine understanding of something non-trivial — evidence, not exposure. Sets a new floor.
34
+ 2. User disclosed prior knowledge — "I already know X." Record it + claimed depth.
35
+ 3. Misconception corrected — high-value; predicts future stumbles.
36
+ 4. Mission shifted in response to learning — cross-link to `MISSION.md` and update it.
37
+
38
+ ### Skip
39
+
40
+ - Material merely covered. Coverage ≠ learning.
41
+ - Anything tersely captured in `GLOSSARY.md`. No duplication.
42
+ - Session activity logs. Records are decision-grade, not a journal.
43
+
44
+ ## Supersession
45
+
46
+ When a later record contradicts an earlier one, mark old one `Status: superseded by LR-NNNN`. Don't delete. The history is itself signal.
@@ -0,0 +1,30 @@
1
+ # MISSION.md Format
2
+
3
+ Lives at workspace root. Captures _why_ the user is learning this. Every teaching decision traces back here.
4
+
5
+ ## Template
6
+
7
+ ```markdown
8
+ # Mission: {Topic}
9
+
10
+ ## Why
11
+ {1-3 sentences. Concrete real-world goal. What changes in user's life/work when they have this skill? Avoid "to understand X" — push for the underlying outcome.}
12
+
13
+ ## Success looks like
14
+ - {Specific observable thing user will be able to do}
15
+ - {Another}
16
+
17
+ ## Constraints
18
+ - {Time, budget, prior commitments, learning preferences}
19
+
20
+ ## Out of scope
21
+ - {Adjacent topics user explicitly skips — protects ZPD}
22
+ ```
23
+
24
+ ## Rules
25
+
26
+ - One mission per workspace. Two unrelated topics = two workspaces.
27
+ - Concrete over abstract. "Run a half marathon by October" beats "get fitter."
28
+ - Push back on vagueness. Bad mission > no mission.
29
+ - Revise when goal moves. Stale mission steers wrong.
30
+ - One screen max. Past that, it's a plan, not a compass.
@@ -0,0 +1,32 @@
1
+ # RESOURCES.md Format
2
+
3
+ Curated trusted sources. Knowledge for explainers comes from here, not parametric guesses. Wisdom routes to communities listed here.
4
+
5
+ ## Template
6
+
7
+ ```markdown
8
+ # {Topic} Resources
9
+
10
+ ## Knowledge
11
+
12
+ - [Book: _The Science and Practice of Strength Training_ — Zatsiorsky & Kraemer](https://example.com)
13
+ Foundational text on programming and adaptation. Use for: periodisation, recovery, intensity zones.
14
+ - [Article: "How Much Should I Train?" — Greg Nuckols (Stronger By Science)](https://example.com)
15
+ Evidence-based review of volume landmarks. Use for: weekly set targets per muscle group.
16
+
17
+ ## Wisdom (Communities)
18
+
19
+ - [r/weightroom](https://reddit.com/r/weightroom)
20
+ High-signal subreddit, moderated against bro-science. Use for: programme critique, plateau troubleshooting.
21
+ - Local: Tuesday strength class at {gym name}
22
+ Use for: real-time coaching feedback on lifts.
23
+ ```
24
+
25
+ ## Rules
26
+
27
+ - High-trust only. Primary sources, recognised experts, peer-reviewed work, well-moderated communities. Marketing-as-education stays out.
28
+ - Annotate every entry. One line: what it covers + when to reach for it.
29
+ - Group `## Knowledge` / `## Wisdom`. Mirrors the triad in `SKILL.md`. Single-group entries fine.
30
+ - Surface gaps. `## Gaps` section lists missing areas the mission needs. Drives future search.
31
+ - Prune ruthlessly. Remove wrong/shallow/off-mission. Five sharp > thirty mediocre.
32
+ - Record community opt-out here so future sessions stop proposing them.