@fernado03/zoo-flow 0.5.1 → 0.5.2

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
3
  "description": "Workflow control plane for Zoo Code.",
4
- "version": "0.5.1",
4
+ "version": "0.5.2",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "zoo-flow": "bin/zoo-flow.js"
@@ -20,11 +20,9 @@ _Avoid_: Purchase, transaction
20
20
 
21
21
  ## Rules
22
22
 
23
- - MUST pick canonical term; aliases under `_Avoid_`.
24
- - MUST flag ambiguity + resolution.
23
+ - **Be opinionated.** When multiple words exist for the same concept, pick the best one and list the others under `_Avoid`.
25
24
  - Define term in 1–2 sentences: what it is, not behavior.
26
25
  - Include domain terms only; exclude generic programming terms.
27
- - Group under headings when useful.
28
26
 
29
27
  ## Slots
30
28
 
@@ -12,8 +12,8 @@ RULE: Do not interview user. Synthesize current context.
12
12
  ## Process
13
13
 
14
14
  1. Explore repo if needed; use glossary; respect ADRs.
15
- 2. Sketch test seams. Prefer existing seams; use highest seam possible. Propose new seams at highest point.
16
- 3. Check with user: seams match expectations?
15
+ 2. Sketch out the seams at which you're going to test the feature. Existing seams should be preferred to new ones. Use the highest seam possible. If new seams are needed, propose them at the highest point you can.
16
+ 3. Check with the user that these seams match their expectations.
17
17
  4. Write PRD.
18
18
  5. Publish to issue tracker.
19
19
  6. Apply `ready-for-agent`.
@@ -12,8 +12,10 @@ Stateful. Treat current directory as the teaching workspace.
12
12
  ## Files
13
13
 
14
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
15
  - `RESOURCES.md` — trusted knowledge + community sources. Format: `resources-format.md`.
16
+ - `./reference/*.html` — A directory of reference materials. These are the compressed learnings from the lessons — cheat sheets, reference algorithms, syntax, yoga poses, glossaries. They are the raw units of learning. They should be beautiful documents which print out well, and are designed for quick reference.
17
+ - `./lessons/*.html` — A directory of lessons. A lesson is a single, self-contained HTML output that teaches one tightly-scoped thing tied to the mission. This is the primary unit of teaching in the workspace.
18
+ - `NOTES.md` — A scratchpad for you to jot down user preferences, or working notes.
17
19
  - `learning-records/NNNN-slug.md` — non-obvious lessons + prior knowledge. Format: `learning-record-format.md`.
18
20
 
19
21
  ## Triad
@@ -24,6 +26,16 @@ Stateful. Treat current directory as the teaching workspace.
24
26
 
25
27
  Topic mix varies: theoretical → knowledge-heavy; practical → skills-heavy.
26
28
 
29
+ ## Lessons
30
+
31
+ A lesson is the main thing you produce — the unit in which knowledge and skills reach the user. Each lesson is one self-contained HTML file, saved to `./lessons/` and titled `0001-<dash-case-name>.html`, where the number increments each time.
32
+
33
+ A lesson should be beautiful — clean, readable typography and layout — since the user will return to these later to review.
34
+
35
+ The lesson should teach ONE THING only. It should be completable very quickly, but give the user a tangible win that they can build on. It should be directly tied to the mission, and should be in the user's zone of proximal development.
36
+
37
+ Make opening a lesson as easy as possible — ideally a single CLI command the user can run to open the HTML file in their browser.
38
+
27
39
  ## Mission first
28
40
 
29
41
  If `MISSION.md` missing or vague, interview before teaching. No mission = no grounding, abstract exercises, no signal for what's next.
@@ -39,21 +51,28 @@ User says "I already know X" → record in `learning-records/`.
39
51
 
40
52
  ## Knowledge loop
41
53
 
54
+ Knowledge should first be gathered from trusted resources. Use `RESOURCES.md` to keep track of them. Lessons should be littered with citations - links to external resources to back up any claim made. This increases the trustworthiness of the lesson, and gives the user a path to acquire more knowledge if they want to go deeper.
55
+
42
56
  1. Pull from `RESOURCES.md`.
43
57
  2. Write HTML explainer to local file. Beautiful, glossary-correct. Litter with citations linking external resources backing every claim. Interactive: "try this" callouts to apply the knowledge.
44
58
  3. Give one-line CLI command to open it.
45
59
  4. Take questions; amend explainer or write a new one.
46
- 5. Once user clearly owns the term, add to `GLOSSARY.md`.
47
60
 
48
- ## Skills loop
49
61
 
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.
62
+ ## Skills
63
+
64
+ Skills should be taught through interactive lessons. There are several tools at your disposal:
65
+
66
+ - Interactive lessons, using quizzes and light in-browser tasks
67
+ - Lessons which guide the user through a list of real-world steps to take (for instance, yoga poses)
68
+ - In-agent quizzes, where you ask the user scenario-based questions about what they've learned
54
69
 
55
70
  Every exercise closes a tight feedback loop.
56
71
 
57
72
  ## Wisdom
58
73
 
59
74
  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.
75
+
76
+ ## `NOTES.md`
77
+
78
+ The user will sometimes express preferences of how they want to be taught, or things you should keep in mind. This is the place to record those preferences, so you can refer back to them when designing lessons or working with the user.