@owlmeans/create-app 0.1.14 → 0.1.16-rc.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,6 +1,6 @@
1
1
  {
2
2
  "name": "@owlmeans/create-app",
3
- "version": "0.1.14",
3
+ "version": "0.1.16-rc.0",
4
4
  "license": "MIT",
5
5
  "description": "Scaffold a minimal fullstack OwlMeans Common app — common + api + web workspaces, shadcn UI navigation/layout, no auth, and a session-scoped in-memory resource. Deploys agent skills via @owlmeans/agent-skills by default.",
6
6
  "type": "module",
@@ -29,7 +29,7 @@
29
29
  "template"
30
30
  ],
31
31
  "dependencies": {
32
- "@owlmeans/agent-skills": "^0.1.14"
32
+ "@owlmeans/agent-skills": "^0.1.16-rc.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@owlmeans/dep-config": "workspace:*",
@@ -47,7 +47,8 @@ Single shared agent memory store: `.agents/memory/` — a graph of subsystem nod
47
47
  scope matches the task.
48
48
  - Every write merges into the matching subsystem node and compacts — record reusable knowledge,
49
49
  never session events.
50
- - Procedure-shaped or repeatedly-touched memory must become a skill `memory-promotion`.
50
+ - Procedure-shaped or repeatedly-touched memory must be **distilled into** a skill as short
51
+ general rules — never pasted in as memory text (`memory-promotion`).
51
52
  - If the store degrades (event logs, oversized nodes, bloated index) — `memory-recompact`.
52
53
  - Never write memory to `.claude/memory/`, `.github/memory/`, `~/.claude/`, or anywhere outside
53
54
  this repository.
@@ -57,10 +58,11 @@ Single shared agent memory store: `.agents/memory/` — a graph of subsystem nod
57
58
  ## Self-Education (mandatory)
58
59
 
59
60
  Whenever development started from a plan agreed with the agent, the work is not complete until
60
- the `self-education` skill has been applied: update the project skills/instructions the change
61
- touched, record external-doc findings (URL + gist) in the governing skill, or add a
62
- skill/instruction for a new subsystem or technology. The completion report must include the
63
- self-education outcome — or state why none was needed.
61
+ the `self-education` skill has been applied: rewrite the project skills/instructions the change
62
+ touched so they state current rules (never a note about what changed), record external-doc
63
+ findings (URL + gist) in the governing skill, or add a skill/instruction for a new subsystem or
64
+ technology. The completion report must include the self-education outcome — or state why none
65
+ was needed.
64
66
 
65
67
  ## What this is
66
68
 
@@ -136,3 +136,7 @@ each repo — fan every fix out to all copies; verify with `diff`. Correct re-ru
136
136
  Fact-shaped ("what is true") stays here. Procedure-shaped ("to do X, do Y") becomes a skill —
137
137
  follow `memory-promotion` where present, otherwise `skill-authoring`. Repeated use of a node to
138
138
  *perform* tasks, and over-cap nodes full of steps, are promotion triggers.
139
+
140
+ Promotion is a **rewrite, never a move**: never paste node text into a skill. "Record the rule,
141
+ not the story" and the size caps above bind skill bodies at least as tightly as they bind nodes
142
+ (`memory-promotion` → Distillation).
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: memory-promotion
3
- description: Transform procedure-shaped or repeatedly-used memory into skills and instructions — the procedure-shape test, promote? repeated-touch flags, over-cap trigger, update-vs-create decision, and the post-promotion pointer state. Use when memory content reads as "how to", when a promote? flag is encountered again, or during recompaction.
3
+ description: Transform procedure-shaped or repeatedly-used memory into skills and instructions — the procedure-shape test, the mandatory distillation rewrite, promote? repeated-touch flags, over-cap trigger, update-vs-create decision, and the post-promotion pointer state. Use when memory content reads as "how to", when a promote? flag is encountered again, when writing memory-derived content into a skill, or during recompaction.
4
4
  user-invocable: true
5
5
  scope: general
6
6
  ---
@@ -12,6 +12,9 @@ Memory holds **facts**; **procedures** belong in skills/instructions, where they
12
12
  stop consuming memory-read cycles. Promotion is how the store stays compact and the harness
13
13
  teaches itself.
14
14
 
15
+ Promotion is a **rewrite, never a move**. Memory text pasted into a skill is the single most
16
+ common way this harness degrades — see Distillation below.
17
+
15
18
  ## Triggers
16
19
 
17
20
  - **Procedure shape**: the content answers *how to do X* — ordered steps, imperative verbs,
@@ -28,7 +31,44 @@ teaches itself.
28
31
 
29
32
  Procedure-shaped answers *how to do X*: ordered steps, imperative verbs, commands, action tables.
30
33
  Fact-shaped answers *what is true*: declarative structure, invariants, symptom→cause pairs.
31
- Mixed entries split — the fact stays in the node, the "then do" moves out.
34
+ Mixed entries split — the fact stays in the node, the "then do" is distilled into a rule in the
35
+ skill.
36
+
37
+ ## Distillation (mandatory)
38
+
39
+ **Never paste memory text into a skill.** A promoted line leaves the node as prose about a past
40
+ occurrence and enters the skill as **one general rule**: *when this applies → do this → or this
41
+ breaks*, stated so it holds next time rather than describing last time.
42
+
43
+ | Strip | Keep |
44
+ |---|---|
45
+ | dates, phase/status markers, "COMPLETE", "landed" | the condition that makes the rule apply |
46
+ | versions, image tags, SHAs — unless the rule turns on the version | the step to take |
47
+ | "was X, now Y", "the former X was removed" | the failure it prevents |
48
+ | who did it, attempt sequences, incident narrative | the recognition fingerprint (symptom) |
49
+ | point-in-time inventories, counts, snapshots | |
50
+
51
+ Before (memory): "2026-07-05 — the control-board git card was removed; the dialog now owns all
52
+ git actions."
53
+ After (rule): "Git actions live in the git dialog; the control board holds none."
54
+
55
+ Before (memory): "Phase 3 (COMPLETE, 2026-06-13): added the init-container build, publisher
56
+ `src/build.ts`, kephemeral v0.1.5."
57
+ After (rule): "Production images build in an init container driven by `publisher/src/build.ts`."
58
+
59
+ **If the rule cannot be stated without saying when it happened, it is not promotable** — it stays
60
+ a memory fact, or it is dropped.
61
+
62
+ ### Budget
63
+
64
+ A promotion normally adds **1–5 lines** to an existing skill, and a single rule is ≤ 3 lines. A
65
+ whole new section, or more text added than the node lost, means the content was moved rather than
66
+ distilled — redo it.
67
+
68
+ A skill may legitimately run long when it maps a large subsystem, so length alone is not the test:
69
+ **every line must be a rule, a contract, or a pointer.** A section that reads as the story of how
70
+ the code got there is pollution at any length. "Record the rule, not the story" (`agent-memory`)
71
+ binds skill bodies at least as tightly as it binds nodes.
32
72
 
33
73
  ## Flagging (how content earns promotion)
34
74
 
@@ -46,17 +86,21 @@ even partially; keep both twins in sync. Create a NEW pair only when:
46
86
  re-encountered ` → promote?` flag);
47
87
  - (c) an external technology required internet docs and has no governing skill.
48
88
 
49
- New skills multiply lookup cost — compactness applies to the skill population too.
89
+ New skills multiply lookup cost — compactness applies to the skill population *and* to each
90
+ skill's body.
50
91
 
51
92
  ## Procedure
52
93
 
53
94
  1. Collect the flagged / procedure-shaped memory lines.
54
- 2. Author or extend the SKILL.md and its `.github/instructions/<name>.instructions.md` twin,
55
- following the repo's `skill-authoring` or `create-skill` conventions.
56
- 3. Shrink the node: delete the promoted prose; leave one pointer line (format below).
57
- 4. Remove the ` promote?` flags.
58
- 5. Update the node's index hook if its main value moved; bump `updated:`.
59
- 6. Report per the Reporting rule.
95
+ 2. **Distill** each into a general rule (section above). Not optional — skipping it is the
96
+ failure mode this skill exists to prevent.
97
+ 3. Author or extend the SKILL.md and its `.github/instructions/<name>.instructions.md` twin,
98
+ following the repo's `skill-authoring` or `create-skill` conventions. Where an existing rule
99
+ already covers the ground, **rewrite that rule in place**; append only when nothing covers it.
100
+ 4. Shrink the node: delete the source lines; leave one pointer line (format below).
101
+ 5. Remove the ` → promote?` flags.
102
+ 6. Update the node's index hook if its main value moved; bump `updated:`.
103
+ 7. Report per the Reporting rule.
60
104
 
61
105
  ## Post-promotion state
62
106
 
@@ -39,7 +39,8 @@ For each old file or section:
39
39
  genuinely in-flight state → `Status`, dated).
40
40
  3. On conflict between records, the version consistent with **current code** wins — check the
41
41
  code, don't average.
42
- 4. Procedure-shaped survivors do not enter nodes — route them to `memory-promotion`.
42
+ 4. Procedure-shaped survivors do not enter nodes — route them to `memory-promotion`. Routing
43
+ means distilling them into general rules, never handing the text over verbatim.
43
44
 
44
45
  ## Legacy-store merge (migration)
45
46
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: self-education
3
- description: Mandatory post-development guidance updating — after functionality is added or changed, update the project skills/instructions the work touched, record external-doc findings (URL + gist) in the governing skill, or add skills/instructions for new subsystems and technologies. Required before the completion report whenever development started from a plan agreed with the agent.
3
+ description: Mandatory post-development guidance updating — after functionality is added or changed, rewrite the project skills/instructions the work touched as current rules (never as change notes), record external-doc findings (URL + gist) in the governing skill, or add skills/instructions for new subsystems and technologies. Required before the completion report whenever development started from a plan agreed with the agent.
4
4
  user-invocable: true
5
5
  scope: general
6
6
  ---
@@ -29,7 +29,22 @@ For each area the work touched:
29
29
  1. Which existing skill/instruction covers it? (Check `.claude/skills/` +
30
30
  `.github/instructions/`.)
31
31
  2. Do its commands, paths, APIs, and behavior claims still hold after the change?
32
- 3. Fix in place — and keep the skill and its instruction twin in sync.
32
+ 3. Fix in place — rewrite the affected lines so they describe current behavior; never append a
33
+ note about what this change did. Keep the skill and its instruction twin in sync.
34
+
35
+ ## Shape of an update
36
+
37
+ Skills and instructions state **current rules, not what changed**. Every edit is a rewrite in
38
+ place of the affected lines.
39
+
40
+ Never write into a skill or instruction: dated bulletins ("2026-07-05 — …"), phase or migration
41
+ status ("Phase 3 complete", "migration done", "landed"), "formerly X, now Y", incident
42
+ narratives, fixed-bug logs, or point-in-time inventories. If a line only makes sense to someone
43
+ who watched the change happen, it does not belong in guidance — the rule it taught does, stated
44
+ timelessly. Facts too specific to generalize go to `.agents/memory/` (`agent-memory`); the
45
+ rewrite recipe is `memory-promotion` → Distillation.
46
+
47
+ Test: a finished skill reads as though the feature was always this way.
33
48
 
34
49
  ## Non-project skills
35
50
 
@@ -71,10 +71,14 @@ skill").
71
71
  If you find yourself writing "last time we…", that is memory. If you are writing "to do X, do Y",
72
72
  that is a skill.
73
73
 
74
+ Never paste memory text into a skill. Memory content enters guidance only as a restated general
75
+ rule — trigger, step, and the failure it prevents, with dates, phase/status markers, versions and
76
+ incident narrative stripped (`memory-promotion` → Distillation).
77
+
74
78
  ## After adding a skill
75
79
 
76
80
  1. If it replaces an ad-hoc `.claude/<topic>.md`, remove that file.
77
- 2. If it absorbed memory content, shrink the source `.agents/memory/` node to a pointer line
78
- (`memory-promotion`) — the memory index does not list skills.
81
+ 2. If it distilled memory content into rules, shrink the source `.agents/memory/` node to a
82
+ pointer line (`memory-promotion`) — the memory index does not list skills.
79
83
  3. Reference it from `CLAUDE.md` / `.github/copilot-instructions.md` if it should be discoverable
80
84
  every session.
@@ -48,7 +48,8 @@ Single shared agent memory store: `.agents/memory/` — a graph of subsystem nod
48
48
  scope matches the task.
49
49
  - Every write merges into the matching subsystem node and compacts — record reusable knowledge,
50
50
  never session events.
51
- - Procedure-shaped or repeatedly-touched memory must become an instruction/skill — follow
51
+ - Procedure-shaped or repeatedly-touched memory must be **distilled into** an instruction/skill
52
+ as short general rules — never pasted in as memory text — follow
52
53
  `.github/instructions/memory-promotion.instructions.md`.
53
54
  - If the store degrades (event logs, oversized nodes, bloated index) — follow
54
55
  `.github/instructions/memory-recompact.instructions.md`.
@@ -61,10 +62,10 @@ Single shared agent memory store: `.agents/memory/` — a graph of subsystem nod
61
62
 
62
63
  Whenever development started from a plan agreed with the agent, the work is not complete until
63
64
  [.github/instructions/self-education.instructions.md](.github/instructions/self-education.instructions.md)
64
- has been applied: update the project instructions/skills the change touched, record external-doc
65
- findings (URL + gist) in the governing instruction, or add an instruction/skill for a new
66
- subsystem or technology. The completion report must include the self-education outcome or
67
- state why none was needed.
65
+ has been applied: rewrite the project instructions/skills the change touched so they state
66
+ current rules (never a note about what changed), record external-doc findings (URL + gist)
67
+ in the governing instruction, or add an instruction/skill for a new subsystem or technology.
68
+ The completion report must include the self-education outcome — or state why none was needed.
68
69
 
69
70
  ## What this is
70
71
 
@@ -137,3 +137,7 @@ Fact-shaped ("what is true") stays here. Procedure-shaped ("to do X, do Y") beco
137
137
  instruction/skill — follow `.github/instructions/memory-promotion.instructions.md` where present,
138
138
  otherwise the skill-authoring guidance. Repeated use of a node to *perform* tasks, and over-cap
139
139
  nodes full of steps, are promotion triggers.
140
+
141
+ Promotion is a **rewrite, never a move**: never paste node text into an instruction. "Record the
142
+ rule, not the story" and the size caps above bind instruction bodies at least as tightly as they
143
+ bind nodes (memory-promotion instruction → Distillation).
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "Promote procedure-shaped or hot memory into skills/instructions — triggers (procedure test, promote? flags, over-cap), update-vs-create rule, post-promotion pointer state. Apply when converting memory content into guidance files or when a promote? flag appears in a memory node."
2
+ description: "Promote procedure-shaped or hot memory into skills/instructions — triggers (procedure test, promote? flags, over-cap), the mandatory distillation rewrite, update-vs-create rule, post-promotion pointer state. Apply when converting memory content into guidance files or when a promote? flag appears in a memory node."
3
3
  applyTo: "**/.agents/memory/**, **/.claude/skills/**, **/.github/instructions/**"
4
4
  scope: general
5
5
  ---
@@ -11,6 +11,9 @@ Memory holds **facts**; **procedures** belong in instructions/skills, where they
11
11
  stop consuming memory-read cycles. Promotion is how the store stays compact and the harness
12
12
  teaches itself.
13
13
 
14
+ Promotion is a **rewrite, never a move**. Memory text pasted into an instruction is the single
15
+ most common way this harness degrades — see Distillation below.
16
+
14
17
  ## Triggers
15
18
 
16
19
  - **Procedure shape**: the content answers *how to do X* — ordered steps, imperative verbs,
@@ -27,7 +30,44 @@ teaches itself.
27
30
 
28
31
  Procedure-shaped answers *how to do X*: ordered steps, imperative verbs, commands, action tables.
29
32
  Fact-shaped answers *what is true*: declarative structure, invariants, symptom→cause pairs.
30
- Mixed entries split — the fact stays in the node, the "then do" moves out.
33
+ Mixed entries split — the fact stays in the node, the "then do" is distilled into a rule in the
34
+ instruction.
35
+
36
+ ## Distillation (mandatory)
37
+
38
+ **Never paste memory text into an instruction.** A promoted line leaves the node as prose about a
39
+ past occurrence and enters the instruction as **one general rule**: *when this applies → do this
40
+ → or this breaks*, stated so it holds next time rather than describing last time.
41
+
42
+ | Strip | Keep |
43
+ |---|---|
44
+ | dates, phase/status markers, "COMPLETE", "landed" | the condition that makes the rule apply |
45
+ | versions, image tags, SHAs — unless the rule turns on the version | the step to take |
46
+ | "was X, now Y", "the former X was removed" | the failure it prevents |
47
+ | who did it, attempt sequences, incident narrative | the recognition fingerprint (symptom) |
48
+ | point-in-time inventories, counts, snapshots | |
49
+
50
+ Before (memory): "2026-07-05 — the control-board git card was removed; the dialog now owns all
51
+ git actions."
52
+ After (rule): "Git actions live in the git dialog; the control board holds none."
53
+
54
+ Before (memory): "Phase 3 (COMPLETE, 2026-06-13): added the init-container build, publisher
55
+ `src/build.ts`, kephemeral v0.1.5."
56
+ After (rule): "Production images build in an init container driven by `publisher/src/build.ts`."
57
+
58
+ **If the rule cannot be stated without saying when it happened, it is not promotable** — it stays
59
+ a memory fact, or it is dropped.
60
+
61
+ ### Budget
62
+
63
+ A promotion normally adds **1–5 lines** to an existing instruction, and a single rule is ≤ 3 lines.
64
+ A whole new section, or more text added than the node lost, means the content was moved rather than
65
+ distilled — redo it.
66
+
67
+ An instruction may legitimately run long when it maps a large subsystem, so length alone is not the
68
+ test: **every line must be a rule, a contract, or a pointer.** A section that reads as the story of
69
+ how the code got there is pollution at any length. "Record the rule, not the story"
70
+ (`agent-memory.instructions.md`) binds instruction bodies at least as tightly as it binds nodes.
31
71
 
32
72
  ## Flagging (how content earns promotion)
33
73
 
@@ -45,18 +85,22 @@ even partially; keep both twins in sync. Create a NEW pair only when:
45
85
  re-encountered ` → promote?` flag);
46
86
  - (c) an external technology required internet docs and has no governing instruction.
47
87
 
48
- New instructions multiply lookup cost — compactness applies to the guidance population too.
88
+ New instructions multiply lookup cost — compactness applies to the guidance population *and* to
89
+ each instruction's body.
49
90
 
50
91
  ## Procedure
51
92
 
52
93
  1. Collect the flagged / procedure-shaped memory lines.
53
- 2. Author or extend the `.github/instructions/<name>.instructions.md` and its
94
+ 2. **Distill** each into a general rule (section above). Not optional — skipping it is the
95
+ failure mode this instruction exists to prevent.
96
+ 3. Author or extend the `.github/instructions/<name>.instructions.md` and its
54
97
  `.claude/skills/<name>/SKILL.md` twin, following the repo's skill-authoring / create-skill
55
- conventions.
56
- 3. Shrink the node: delete the promoted prose; leave one pointer line (format below).
57
- 4. Remove the ` promote?` flags.
58
- 5. Update the node's index hook if its main value moved; bump `updated:`.
59
- 6. Report per the Reporting rule.
98
+ conventions. Where an existing rule already covers the ground, **rewrite that rule in place**;
99
+ append only when nothing covers it.
100
+ 4. Shrink the node: delete the source lines; leave one pointer line (format below).
101
+ 5. Remove the ` promote?` flags.
102
+ 6. Update the node's index hook if its main value moved; bump `updated:`.
103
+ 7. Report per the Reporting rule.
60
104
 
61
105
  ## Post-promotion state
62
106
 
@@ -40,7 +40,8 @@ For each old file or section:
40
40
  3. On conflict between records, the version consistent with **current code** wins — check the
41
41
  code, don't average.
42
42
  4. Procedure-shaped survivors do not enter nodes — route them to
43
- `.github/instructions/memory-promotion.instructions.md`.
43
+ `.github/instructions/memory-promotion.instructions.md`. Routing means distilling them into
44
+ general rules, never handing the text over verbatim.
44
45
 
45
46
  ## Legacy-store merge (migration)
46
47
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: "Mandatory post-development skill/instruction updating — after adding or changing functionality, update touched project guidance, note external-doc findings in the governing instruction, or add instructions for new subsystems/technologies; required before the completion report when development started from an agreed plan. Apply when editing skills or instruction files after development."
2
+ description: "Mandatory post-development skill/instruction updating — after adding or changing functionality, rewrite touched project guidance as current rules (never as change notes), note external-doc findings in the governing instruction, or add instructions for new subsystems/technologies; required before the completion report when development started from an agreed plan. Apply when editing skills or instruction files after development."
3
3
  applyTo: "**/.claude/skills/**, **/.github/instructions/**"
4
4
  scope: general
5
5
  ---
@@ -28,7 +28,23 @@ For each area the work touched:
28
28
  1. Which existing instruction/skill covers it? (Check `.github/instructions/` +
29
29
  `.claude/skills/`.)
30
30
  2. Do its commands, paths, APIs, and behavior claims still hold after the change?
31
- 3. Fix in place — and keep the instruction and its skill twin in sync.
31
+ 3. Fix in place — rewrite the affected lines so they describe current behavior; never append a
32
+ note about what this change did. Keep the instruction and its skill twin in sync.
33
+
34
+ ## Shape of an update
35
+
36
+ Instructions and skills state **current rules, not what changed**. Every edit is a rewrite in
37
+ place of the affected lines.
38
+
39
+ Never write into an instruction or skill: dated bulletins ("2026-07-05 — …"), phase or migration
40
+ status ("Phase 3 complete", "migration done", "landed"), "formerly X, now Y", incident
41
+ narratives, fixed-bug logs, or point-in-time inventories. If a line only makes sense to someone
42
+ who watched the change happen, it does not belong in guidance — the rule it taught does, stated
43
+ timelessly. Facts too specific to generalize go to `.agents/memory/`
44
+ (`.github/instructions/agent-memory.instructions.md`); the rewrite recipe is
45
+ `.github/instructions/memory-promotion.instructions.md` → Distillation.
46
+
47
+ Test: a finished instruction reads as though the feature was always this way.
32
48
 
33
49
  ## Non-project instructions
34
50
 
@@ -55,8 +55,12 @@ Cross-reference related guidance by name.
55
55
  specific to this project's history. See the agent-memory instruction; promotion triggers live
56
56
  in the memory-promotion instruction.
57
57
 
58
+ Never paste memory text into guidance. Memory content enters an instruction or skill only as a
59
+ restated general rule — trigger, step, and the failure it prevents, with dates, phase/status
60
+ markers, versions and incident narrative stripped (memory-promotion instruction → Distillation).
61
+
58
62
  ## After adding a skill
59
63
 
60
- If it absorbed memory content, shrink the source `.agents/memory/` node to a pointer line
64
+ If it distilled memory content into rules, shrink the source `.agents/memory/` node to a pointer line
61
65
  (memory-promotion instruction) — the memory index does not list skills. Reference it from
62
66
  `.github/copilot-instructions.md` / `CLAUDE.md` if it should be discoverable every session.