agentplugged 1.3.0 → 1.4.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.
Files changed (236) hide show
  1. package/README.md +3 -2
  2. package/dist/agent-commands.js +25473 -24861
  3. package/dist/bin.js +1 -2
  4. package/dist/cli.js +1 -2
  5. package/dist/dist.js +12205 -0
  6. package/dist/esm.js +8 -16
  7. package/dist/forge-follow.js +5 -6
  8. package/dist/hash.js +9 -12083
  9. package/dist/helpers.js +257 -514
  10. package/dist/launcher-env.js +1 -2
  11. package/dist/launcher.js +3 -4
  12. package/dist/libsodium-wrappers.js +2 -4
  13. package/dist/libsodium-wrappers2.js +2 -4
  14. package/dist/main.js +791 -152
  15. package/dist/method/agents/alex/SKILL.md +13 -29
  16. package/dist/method/agents/alex/agent.yaml +1 -1
  17. package/dist/method/agents/basile/SKILL.md +44 -0
  18. package/dist/method/agents/basile/agent.yaml +69 -0
  19. package/dist/method/agents/chloe/SKILL.md +12 -25
  20. package/dist/method/agents/chloe/agent.yaml +3 -3
  21. package/dist/method/agents/ethan/SKILL.md +8 -9
  22. package/dist/method/agents/ethan/agent.yaml +9 -8
  23. package/dist/method/agents/hugo/SKILL.md +8 -8
  24. package/dist/method/agents/hugo/agent.yaml +9 -8
  25. package/dist/method/agents/iris/SKILL.md +4 -10
  26. package/dist/method/agents/izzy/SKILL.md +68 -91
  27. package/dist/method/agents/izzy/agent.yaml +8 -15
  28. package/dist/method/agents/jade/SKILL.md +7 -9
  29. package/dist/method/agents/jade/agent.yaml +9 -8
  30. package/dist/method/agents/julien/SKILL.md +38 -58
  31. package/dist/method/agents/lina/SKILL.md +7 -9
  32. package/dist/method/agents/lina/agent.yaml +9 -8
  33. package/dist/method/agents/lou/SKILL.md +4 -11
  34. package/dist/method/agents/lou/agent.yaml +2 -2
  35. package/dist/method/agents/maya/SKILL.md +12 -19
  36. package/dist/method/agents/maya/agent.yaml +1 -3
  37. package/dist/method/agents/milo/SKILL.md +21 -32
  38. package/dist/method/agents/noah/SKILL.md +109 -63
  39. package/dist/method/agents/noah/agent.yaml +14 -31
  40. package/dist/method/agents/noah/references/decisions.md +61 -121
  41. package/dist/method/agents/noah/references/environment.md +30 -70
  42. package/dist/method/agents/noah/references/facts.md +22 -11
  43. package/dist/method/agents/noah/references/journey.md +26 -78
  44. package/dist/method/agents/noah/references/team.md +63 -190
  45. package/dist/method/agents/omar/SKILL.md +12 -28
  46. package/dist/method/agents/omar/agent.yaml +1 -1
  47. package/dist/method/agents/quentin/SKILL.md +7 -15
  48. package/dist/method/agents/quentin/agent.yaml +4 -2
  49. package/dist/method/agents/sam/SKILL.md +6 -8
  50. package/dist/method/agents/sam/agent.yaml +9 -8
  51. package/dist/method/agents/stella/SKILL.md +6 -14
  52. package/dist/method/agents/stella/agent.yaml +1 -1
  53. package/dist/method/agents/tess/SKILL.md +7 -14
  54. package/dist/method/agents/tess/agent.yaml +2 -2
  55. package/dist/method/agents/zoe/SKILL.md +9 -21
  56. package/dist/method/doctor.yaml +23 -4
  57. package/dist/method/models.yaml +12 -0
  58. package/dist/method/skills/acceptance-qa/SKILL.md +1 -1
  59. package/dist/method/skills/acceptance-qa/references/run.md +24 -32
  60. package/dist/method/skills/acceptance-qa/references/scenarios.md +16 -19
  61. package/dist/method/skills/acceptance-qa/references/verdicts.md +10 -16
  62. package/dist/method/skills/api-e2e-tests/SKILL.md +46 -46
  63. package/dist/method/skills/audit-pillars/SKILL.md +12 -10
  64. package/dist/method/skills/audit-pillars/references/pillars.md +40 -0
  65. package/dist/method/skills/chain-stories/SKILL.md +5 -4
  66. package/dist/method/skills/chain-stories/references/merge-order.md +23 -0
  67. package/dist/method/skills/check-readiness/SKILL.md +1 -1
  68. package/dist/method/skills/check-requirements/SKILL.md +37 -72
  69. package/dist/method/skills/check-requirements/references/engine-proofs.md +16 -23
  70. package/dist/method/skills/check-requirements/references/proofs-and-gaps.md +22 -37
  71. package/dist/method/skills/critique-deliverable/SKILL.md +3 -3
  72. package/dist/method/skills/critique-deliverable/references/choose.md +12 -21
  73. package/dist/method/skills/critique-deliverable/references/format.md +14 -20
  74. package/dist/method/skills/critique-deliverable/references/gestures.md +14 -21
  75. package/dist/method/skills/critique-deliverable/references/judgment.md +4 -9
  76. package/dist/method/skills/critique-deliverable/references/methods.md +21 -0
  77. package/dist/method/skills/critique-deliverable/references/reconcile.md +6 -11
  78. package/dist/method/skills/deep-research/SKILL.md +16 -24
  79. package/dist/method/skills/deep-research/references/candidates.md +13 -25
  80. package/dist/method/skills/deep-research/references/external.md +15 -34
  81. package/dist/method/skills/deep-research/references/page-format.md +16 -42
  82. package/dist/method/skills/deep-research/references/types.md +16 -27
  83. package/dist/method/skills/develop-story/SKILL.md +56 -189
  84. package/dist/method/skills/develop-story/references/acceptance-tests.md +18 -71
  85. package/dist/method/skills/develop-story/references/quick-lane.md +20 -0
  86. package/dist/method/skills/diagnose-bug/SKILL.md +42 -53
  87. package/dist/method/skills/diagnose-bug/references/hypotheses.md +1 -2
  88. package/dist/method/skills/generate-knowledge-base/SKILL.md +57 -226
  89. package/dist/method/skills/generate-knowledge-base/assets/index-template.md +6 -15
  90. package/dist/method/skills/generate-knowledge-base/assets/page-template.md +11 -24
  91. package/dist/method/skills/generate-knowledge-base/references/living-docs.md +25 -64
  92. package/dist/method/skills/generate-knowledge-base/references/reuse-map.md +9 -18
  93. package/dist/method/skills/ideation/SKILL.md +16 -23
  94. package/dist/method/skills/ideation/references/close.md +18 -14
  95. package/dist/method/skills/ideation/references/converge.md +11 -21
  96. package/dist/method/skills/ideation/references/stances.md +13 -17
  97. package/dist/method/skills/ideation/references/techniques.md +20 -0
  98. package/dist/method/skills/improve-code/SKILL.md +42 -54
  99. package/dist/method/skills/pitch/SKILL.md +16 -19
  100. package/dist/method/skills/pitch/references/deck.md +15 -18
  101. package/dist/method/skills/pitch/references/design-implementation.md +13 -21
  102. package/dist/method/skills/pitch/references/design.md +21 -0
  103. package/dist/method/skills/pitch/references/story.md +13 -18
  104. package/dist/method/skills/plan-sprint/SKILL.md +49 -151
  105. package/dist/method/skills/resolve-merge-conflict/SKILL.md +40 -65
  106. package/dist/method/skills/review-after-launch/SKILL.md +56 -0
  107. package/dist/method/skills/review-story/SKILL.md +44 -72
  108. package/dist/method/skills/review-story/references/amend-story.md +8 -13
  109. package/dist/method/skills/review-story/references/export.md +7 -17
  110. package/dist/method/skills/review-story/references/free-review.md +9 -20
  111. package/dist/method/skills/review-story/references/judge.md +25 -37
  112. package/dist/method/skills/review-story/references/tests.md +29 -0
  113. package/dist/method/skills/round-table/SKILL.md +6 -6
  114. package/dist/method/skills/round-table/references/closing.md +18 -0
  115. package/dist/method/skills/round-table/references/guests.md +15 -15
  116. package/dist/method/skills/round-table/references/rooms.md +15 -28
  117. package/dist/method/skills/round-table/references/table.md +19 -0
  118. package/dist/method/skills/run-acceptance/SKILL.md +58 -0
  119. package/dist/method/skills/run-acceptance/references/template.md +39 -0
  120. package/dist/method/skills/run-retrospective/SKILL.md +50 -189
  121. package/dist/method/skills/security-review-architecture/SKILL.md +47 -109
  122. package/dist/method/skills/security-review-architecture/references/spec-review.md +27 -38
  123. package/dist/method/skills/setup-ci/SKILL.md +45 -109
  124. package/dist/method/skills/split-into-stories/SKILL.md +59 -192
  125. package/dist/method/skills/split-into-stories/assets/story.md.tmpl +15 -4
  126. package/dist/method/skills/strategy/SKILL.md +21 -25
  127. package/dist/method/skills/strategy/references/costs.md +12 -26
  128. package/dist/method/skills/strategy/references/gestures.md +12 -21
  129. package/dist/method/skills/strategy/references/innovate.md +19 -37
  130. package/dist/method/skills/strategy/references/solve.md +19 -32
  131. package/dist/method/skills/test-idea/SKILL.md +5 -5
  132. package/dist/method/skills/test-idea/assets/prfaq-template.md +1 -1
  133. package/dist/method/skills/test-idea/references/faq.md +12 -29
  134. package/dist/method/skills/test-idea/references/forge.md +19 -30
  135. package/dist/method/skills/test-idea/references/personas.md +16 -19
  136. package/dist/method/skills/test-idea/references/prfaq.md +31 -31
  137. package/dist/method/skills/workshop/SKILL.md +10 -16
  138. package/dist/method/skills/workshop/references/create.md +28 -45
  139. package/dist/method/skills/workshop/references/customize.md +17 -42
  140. package/dist/method/skills/workshop/references/evaluate.md +11 -42
  141. package/dist/method/skills/workshop/references/rules.md +17 -26
  142. package/dist/method/skills/write-architecture/SKILL.md +62 -220
  143. package/dist/method/skills/write-architecture/references/guard.md +11 -28
  144. package/dist/method/skills/write-architecture/references/self-check.md +22 -38
  145. package/dist/method/skills/write-brand/SKILL.md +2 -2
  146. package/dist/method/skills/write-brand/references/identity.md +21 -22
  147. package/dist/method/skills/write-brand/references/platform.md +13 -20
  148. package/dist/method/skills/write-brand/references/rules.md +16 -22
  149. package/dist/method/skills/write-brief/SKILL.md +56 -149
  150. package/dist/method/skills/write-brief/references/brief-checklist.md +18 -30
  151. package/dist/method/skills/write-content/SKILL.md +53 -210
  152. package/dist/method/skills/write-content/references/content-checklist.md +32 -50
  153. package/dist/method/skills/write-positioning/SKILL.md +53 -197
  154. package/dist/method/skills/write-positioning/references/positioning-checklist.md +15 -41
  155. package/dist/method/skills/write-positioning/references/seo-checklist.md +26 -51
  156. package/dist/method/skills/write-prd/SKILL.md +52 -179
  157. package/dist/method/skills/write-prd/references/prd-checklist.md +25 -54
  158. package/dist/method/skills/write-sales/SKILL.md +48 -212
  159. package/dist/method/skills/write-sales/references/before-you-send.md +21 -49
  160. package/dist/method/skills/write-sales/references/sales-checklist.md +19 -69
  161. package/dist/method/skills/write-spec/references/spec-guide.md +20 -23
  162. package/dist/method/skills/write-ux-spec/SKILL.md +57 -168
  163. package/dist/method/skills/write-ux-spec/references/accessibility-check.md +13 -72
  164. package/dist/method/skills/write-ux-spec/references/mockups.md +6 -68
  165. package/dist/method/skills/write-ux-spec/references/tokens-and-sketches.md +8 -81
  166. package/dist/method/skills/write-ux-spec/references/ux-checklist.md +12 -67
  167. package/dist/product-root.js +353 -250
  168. package/dist/project-command.js +1508 -0
  169. package/dist/project-command2.js +1 -0
  170. package/dist/read-command.js +19 -0
  171. package/dist/rolldown-runtime.js +1 -2
  172. package/dist/sheet-command.js +57 -0
  173. package/dist/webauthn-verify.js +4 -5
  174. package/package.json +11 -10
  175. package/dist/method/agents/noah/references/conduct.md +0 -102
  176. package/dist/method/skills/api-e2e-tests/references/frameworks.md +0 -58
  177. package/dist/method/skills/api-e2e-tests/references/generate.md +0 -67
  178. package/dist/method/skills/audit-pillars/references/accessibility.md +0 -13
  179. package/dist/method/skills/audit-pillars/references/architecture.md +0 -13
  180. package/dist/method/skills/audit-pillars/references/dependencies.md +0 -13
  181. package/dist/method/skills/audit-pillars/references/format.md +0 -20
  182. package/dist/method/skills/audit-pillars/references/interface.md +0 -13
  183. package/dist/method/skills/audit-pillars/references/method.md +0 -33
  184. package/dist/method/skills/audit-pillars/references/performance.md +0 -17
  185. package/dist/method/skills/audit-pillars/references/quality.md +0 -11
  186. package/dist/method/skills/audit-pillars/references/security.md +0 -13
  187. package/dist/method/skills/audit-pillars/references/tests.md +0 -17
  188. package/dist/method/skills/critique-deliverable/references/assumption-audit.md +0 -11
  189. package/dist/method/skills/critique-deliverable/references/compare-existing.md +0 -13
  190. package/dist/method/skills/critique-deliverable/references/devils-advocate.md +0 -13
  191. package/dist/method/skills/critique-deliverable/references/divergence.md +0 -15
  192. package/dist/method/skills/critique-deliverable/references/domain-expert.md +0 -14
  193. package/dist/method/skills/critique-deliverable/references/extreme-user.md +0 -13
  194. package/dist/method/skills/critique-deliverable/references/failure-modes.md +0 -13
  195. package/dist/method/skills/critique-deliverable/references/first-principles.md +0 -12
  196. package/dist/method/skills/critique-deliverable/references/inversion.md +0 -13
  197. package/dist/method/skills/critique-deliverable/references/pre-mortem.md +0 -12
  198. package/dist/method/skills/critique-deliverable/references/red-team.md +0 -12
  199. package/dist/method/skills/critique-deliverable/references/reframe.md +0 -12
  200. package/dist/method/skills/critique-deliverable/references/second-order.md +0 -12
  201. package/dist/method/skills/critique-deliverable/references/socratic.md +0 -15
  202. package/dist/method/skills/critique-deliverable/references/steelman.md +0 -13
  203. package/dist/method/skills/critique-deliverable/references/subtraction.md +0 -12
  204. package/dist/method/skills/develop-story/references/self-check.md +0 -46
  205. package/dist/method/skills/generate-knowledge-base/references/kb-checklist.md +0 -49
  206. package/dist/method/skills/generate-knowledge-base/references/repository-scan.md +0 -48
  207. package/dist/method/skills/ideation/references/choose.md +0 -21
  208. package/dist/method/skills/ideation/references/gestures.md +0 -15
  209. package/dist/method/skills/ideation/references/techniques-borrowed.md +0 -8
  210. package/dist/method/skills/ideation/references/techniques-deep.md +0 -12
  211. package/dist/method/skills/ideation/references/techniques-frames.md +0 -12
  212. package/dist/method/skills/ideation/references/techniques-futures.md +0 -8
  213. package/dist/method/skills/ideation/references/techniques-limits.md +0 -9
  214. package/dist/method/skills/ideation/references/techniques-people.md +0 -7
  215. package/dist/method/skills/ideation/references/techniques-sparks.md +0 -10
  216. package/dist/method/skills/ideation/references/techniques-together.md +0 -11
  217. package/dist/method/skills/order-merges/SKILL.md +0 -71
  218. package/dist/method/skills/pitch/references/deck-types.md +0 -17
  219. package/dist/method/skills/pitch/references/design-methods.md +0 -45
  220. package/dist/method/skills/pitch/references/design-thinking.md +0 -28
  221. package/dist/method/skills/pitch/references/story-frameworks.md +0 -39
  222. package/dist/method/skills/quick-lane/SKILL.md +0 -143
  223. package/dist/method/skills/review-tests/SKILL.md +0 -32
  224. package/dist/method/skills/review-tests/references/check.md +0 -25
  225. package/dist/method/skills/review-tests/references/grid.md +0 -27
  226. package/dist/method/skills/round-table/references/cast.md +0 -14
  227. package/dist/method/skills/round-table/references/gestures.md +0 -24
  228. package/dist/method/skills/round-table/references/independence.md +0 -21
  229. package/dist/method/skills/round-table/references/three-views.md +0 -17
  230. package/dist/method/skills/round-table/references/turns.md +0 -19
  231. package/dist/method/skills/strategy/references/innovate-frameworks.md +0 -48
  232. package/dist/method/skills/strategy/references/solve-methods.md +0 -45
  233. package/dist/method/skills/test-idea/references/bets.md +0 -14
  234. package/dist/method/skills/test-idea/references/concept.md +0 -24
  235. package/dist/method/skills/test-idea/references/verdict.md +0 -26
  236. package/dist/method/skills/workshop/references/analyze.md +0 -36
@@ -1,121 +1,57 @@
1
1
  ---
2
2
  name: setup-ci
3
- description: Set up the product's base CI (lint, tests, build, audit) for its forge, never over an existing one, for the creator to merge. Run by Omar.
3
+ description: Set up the product's base CI (lint, tests, build, audit) for its forge, never over an existing one; the creator merges it. Run by Omar.
4
4
  metadata:
5
5
  agent: omar
6
6
  phase: build
7
7
  ---
8
8
  # Set up the CI
9
9
 
10
- > **The creator's Git workflow, not the method's.** Read `git` in `state.next` or `state.get` before you act: the branch a story lands on is `git.branches.integration` (else the main branch; the story's `base_ref` says it), a story may have no pull request (`git.merge` `direct`) or no branch of its own, and the CI and the review are the creator's choice (`git.ci` `none`, `git.review` false). Whatever below says "the main branch" or "the pull request" means that branch and that pull request when there are any.
11
-
12
- The CI is what lets the creator see only green pull requests. Each check it runs is one name the
13
- engine reads back (`story ci`, `story.ci`): a failed check sends the story to its developer, who
14
- fixes it on the same branch. This skill writes that CI once, from the method's templates, and
15
- leaves it to the product: the engine never writes it again.
16
-
17
- This skill belongs to Omar. Run it as Omar, with `agent: omar` in every MCP call. Work in the
18
- creator's language; keep commands, file names and check names as they are.
19
-
20
- - **Inputs:** the product's `package.json` and lock file, `.nvmrc` when there is one, the
21
- architecture and the test strategy (`.agentplugged/docs/`), the runbook when it exists.
22
- - **Output:** `.github/workflows/ci.yml` (GitHub) or `.gitlab-ci.yml` (GitLab), delivered in a
23
- branch of its own, pushed for the creator to open and merge, and its description in the runbook.
24
- - The CI comes before the first story of the build: `state.next` proposes this skill then
25
- (`setup_ci`), even though Omar's own phase is the delivery.
26
-
27
- Follow the steps in order. Each one ends with what it must have produced.
28
-
29
- ## Step 1 — Check where the product stands
30
-
31
- 1. Call `agent.status` (`working`, task "CI setup").
32
- 2. Call `state.get`: `phase.current` should be `build` (or null when the profile has no phases).
33
- In an earlier phase, say which phase is current and stop.
34
- 3. Look for an existing CI: `.github/workflows/*.yml`, `.gitlab-ci.yml`, or another system's file
35
- at the repository's top (`.circleci/`, `azure-pipelines.yml`, `Jenkinsfile`…). When one
36
- exists, never replace it: compare it with the four checks below, propose what is missing to
37
- the creator, and go to Step 4. `npx agentplugged ci setup` lists, as `Not checked by the CI`, the
38
- test scripts (`test:api`, `test:integration`, `test:e2e`) the CI does not run: add them to the
39
- `test` job (skill `api-e2e-tests`, reference `ci`).
40
-
41
- **Produces:** the phase confirmed, and whether a CI already exists.
42
-
43
- ## Step 2 — Generate the workflow
44
-
45
- 1. Run `npx agentplugged ci setup` at the repository's top. The forge is `ci.forge` in
46
- `.agentplugged/method.yaml` when set, else the `origin` remote's host (`github.com`,
47
- `gitlab.com`, or a host starting with `github.` or `gitlab.`). When neither says it (a forge
48
- hosted under another name), ask the creator which one, then run
49
- `npx agentplugged ci setup --forge github` (or `--forge gitlab`), and propose to set
50
- `ci: { forge: … }` in `method.yaml` so that reading the CI finds it too.
51
- 2. Read what it says: the file written, the stack it recognised (pnpm, npm, yarn, or other), and
52
- every `TODO` left. It writes nothing when a CI exists (`exists`).
53
-
54
- The workflow has four jobs, one check each, named `lint`, `test`, `build` and `audit`. Each one
55
- installs the dependencies as locked and runs the product's own script (`lint`, then `typecheck`
56
- when it exists; `test`, then `test:api`, `test:integration` and `test:e2e` when it has them; `build`), or the package manager's audit of high-severity advisories.
57
-
58
- **Produces:** the workflow file, and the list of TODOs.
59
-
60
- ## Step 3 — Complete what the template could not guess
61
-
62
- 1. Read the file whole. Each `TODO` comment is followed by a step that fails on purpose: replace
63
- both with the real command — the script the product lacks, or the toolchain of a stack the
64
- template does not know (from the architecture: language, version, package manager).
65
- 2. Keep one job per check and keep their names: the engine reports failed checks by name.
66
- 3. Never weaken a check to make it pass: no `continue-on-error`, no `allow_failure`, no
67
- `|| true`, no skipped test. A check that cannot pass yet is a `decision` checkpoint for the
68
- creator, never a silent green.
69
- 4. Refer to secrets by name only (`${{ secrets.NAME }}`, `$NAME`), never by value. The base CI
70
- needs none.
71
-
72
- **Produces:** a workflow without a `TODO`, each check meaningful.
73
-
74
- ## Step 4 — Deliver it
75
-
76
- 1. Create a branch of its own (`ci/base-workflows`), commit the workflow there and push that
77
- branch by its name (`git push origin ci/base-workflows`: never the main branch, never
78
- forced). Never run `gh` or `glab` yourself: no pull request by hand, no CI or repository
79
- setting (the engine delivers it). The creator types no command either:
80
- the engine delivers it once they approve.
81
- - When the product has no remote repository yet (no `origin`), ask the creator for it first
82
- (`guard.creator_action`, `forge_repo_create` {forge, name}: private by default), then,
83
- for the main branch that was never pushed, `forge_push_main` {}. Each is a request the
84
- creator approves in the chat, confirming the action ("yes, create the private repository
85
- shop on GitHub"); the engine does it with the forge's tool they connected.
86
- - Then ask for the merge: `guard.creator_action`, `forge_merge_ci` {branch:
87
- `ci/base-workflows`}. The engine opens the pull request (its title and text are fixed)
88
- when there is none, and merges it on the commit the creator saw, if only the CI's files and
89
- the product's documentation changed in the branch and the branch is at the remote exactly as
90
- it was read. Present the request as it asks: the repository, the branch and the commit it
91
- names; never merge anything yourself.
92
- 2. Describe the pipeline in `.agentplugged/docs/runbook.md` (create it with its YAML header when
93
- it does not exist: `id`, `kind: note`, `owner: omar`, `links`): each check, what it proves,
94
- and what to do when it fails. Run `npx agentplugged docs check` and fix what it reports.
95
-
96
- **Produces:** the branch of the CI, pushed, and the runbook updated.
97
-
98
- ## Step 5 — Report
99
-
100
- 1. Call `story.result`: `complete`, a summary naming the workflow, its checks and the
101
- branch, your assumptions (a script you inferred, a version you chose), the open questions and
102
- the conflicts. `partial` when a TODO is left, saying which.
103
- 2. Call `agent.status` (`idle`).
104
- 3. Tell the creator what the engine did once they approved the merge (`executed` in the
105
- result): from then on, every story's pull request runs these checks, and a failed one goes
106
- back to its developer. When a request answers `FORGE_GESTURE_FAILED`, say what it says
107
- (the forge's tool not logged in, a branch not pushed, a remote ahead of the main branch…):
108
- the creator fixes it, you ask again.
109
- Then hand back to Noah, who proposes what comes next; the creator decides (without Noah, the
110
- creator picks the next agent).
10
+ > **The creator's Git workflow, not the method's.** Read `git` in `state.next` or `state.get`: stories land on `git.branches.integration` (else the main branch), may have no pull request (`git.merge` `direct`), and the CI is the creator's choice (`git.ci` `none`). "The main branch" and "the pull request" below mean those.
11
+
12
+ ## Overview
13
+
14
+ - **Step:** before the first story of the build (`state.next` proposes it, `setup_ci`), as Omar
15
+ (`agent: omar` in every MCP call). A failed check (`story.ci`) sends the story to its developer.
16
+ - **Produces:** `.github/workflows/ci.yml` or `.gitlab-ci.yml` from the templates in `assets/`, in a
17
+ branch of its own for the creator to merge; its description in `.agentplugged/docs/runbook.md`.
18
+ - **Reads:** `package.json`, the lock file, `.nvmrc`.
19
+ - **Validation point:** the creator action `forge_merge_ci` (step 4).
20
+
21
+ ## Steps
22
+
23
+ 1. **Start.** `agent.status` (`working`). `state.get`: `phase.current` should be `build` (or null);
24
+ earlier: stop. An existing CI (`.github/workflows/`, `.gitlab-ci.yml`,
25
+ `.circleci/`, `azure-pipelines.yml`, `Jenkinsfile`…) is never replaced: compare it with the four
26
+ checks, propose what is missing, go to step 4. `npx agentplugged ci setup` lists as `Not checked
27
+ by the CI` the test scripts (`test:api`, `test:integration`, `test:e2e`) it skips: add them to
28
+ the `test` job (skill `api-e2e-tests`, reference `ci`).
29
+ 2. **Generate.** `npx agentplugged ci setup`. Forge: `ci.forge` in `.agentplugged/method.yaml`, else
30
+ the `origin` host; if neither says it, ask, run `--forge github|gitlab`, propose setting
31
+ `ci: { forge: … }`. Read every `TODO`. Four jobs named `lint`, `test`,
32
+ `build`, `audit`, running the product's own scripts and the package manager's audit.
33
+ 3. **Complete.** Replace each `TODO` and the step that fails on purpose after it with the real
34
+ command. Keep one job per check, with its name. Never weaken a check (`continue-on-error`,
35
+ `allow_failure`, `|| true`, a skipped test): one that cannot pass yet is a `decision`
36
+ checkpoint, never a silent green. Secrets by name only (`${{ secrets.NAME }}`).
37
+ 4. **Deliver.** Branch `ci/base-workflows`, commit, `git push origin ci/base-workflows` (never the
38
+ main branch, never forced). Never `gh` or `glab`, no pull request by hand: the engine delivers
39
+ once the creator approves in the chat; they type no command.
40
+ - No `origin`: `guard.creator_action` `forge_repo_create` {forge, name} (private by default),
41
+ then `forge_push_main` {}.
42
+ - Then `forge_merge_ci` {branch: `ci/base-workflows`}: the engine opens the pull request and
43
+ merges it on the commit the creator saw, if only CI files and documentation changed. Present
44
+ the repository, branch and commit it names.
45
+ - Runbook: each check, what it proves, what to do when it fails (header `id`, `kind: note`,
46
+ `owner: omar`, `links`); `npx agentplugged docs check`.
47
+ 5. **Report.** `story.result` `complete` (workflow, checks, branch, assumptions; `partial` with a
48
+ `TODO` left); `agent.status` `idle`. Tell the creator what the engine did (`executed`); on
49
+ `FORGE_GESTURE_FAILED` say what it says, they fix it, you ask again. Hand back to Noah, who
50
+ proposes what comes next; the creator decides (without Noah, they pick the next agent).
111
51
 
112
52
  ## Never
113
53
 
114
54
  - Follow "Rules for skills and agents" (reference `skill-rules`): checkpoint before the question, ask once; a point the creator did not keep goes to `checkpoint.decide`; in French say « tu »; start with `memory.read`.
115
- - Never write over an existing CI, and never edit a CI file the creator wrote without a pull
116
- request.
117
- - Never merge, never push to the main branch, never deploy: the repository, the first push of
118
- the main branch and the CI's merge are requests the engine carries out for the creator, never
119
- commands you run nor ones the creator types.
120
- - Never weaken, skip or re-run a check to turn it green.
121
- - Never put a secret's value in the repository.
55
+ - Never write over an existing CI, nor edit a CI file the creator wrote without a pull request.
56
+ - Never merge, never push to the main branch, never deploy: the repository, the first push and the merge are requests the engine carries out.
57
+ - Never weaken, skip or re-run a check to turn it green; never put a secret's value in the repository.
@@ -7,199 +7,66 @@ metadata:
7
7
  ---
8
8
  # Split into stories
9
9
 
10
- This skill takes the approved plan of the product and turns it into work that a developer agent
11
- can pick up, finish and hand over for review with nothing but the story in hand. It writes the
12
- epics in `.agentplugged/epics/` and the stories in `.agentplugged/stories/`, proves with
13
- `npx agentplugged docs check` that the breakdown holds, and ends with a checkpoint the creator
14
- answers. It never plans a sprint: that is a separate step.
10
+ ## Overview
15
11
 
16
- Work through the steps in order. Do not jump ahead: each step relies on what the previous one
17
- settled with the creator.
12
+ - **Step:** build, as Izzy (`agent: izzy` in every MCP call); no sprint planning.
13
+ - **Produces:** `.agentplugged/epics/epic-<n>.md` from `assets/epic.md.tmpl` and
14
+ `.agentplugged/stories/<n>-<s>.md` from `assets/story.md.tmpl`.
15
+ - **Reads:** by section (`reading: true`, `docs read @requirements @journeys
16
+ @decisions @screens`), never whole. Short path
17
+ (`full_path` in `journey.skipped`): `spec.md` alone stands for all three, its Stories part is
18
+ the first draft. A prototype without PRD: 3 to 6 stories, one per page, citing the prototype's
19
+ sections instead of requirements.
20
+ - **Validation point:** a `document` checkpoint per epic (step 6), one stack.
18
21
 
19
- ## Rules that hold throughout
22
+ ## Rules
20
23
 
21
24
  - Follow "Rules for skills and agents" (reference `skill-rules`): checkpoint before the question, ask once; a point the creator did not keep goes to `checkpoint.decide`; in French say « tu »; start with `memory.read`.
22
- - Write only in `.agentplugged/epics/` and `.agentplugged/stories/`. The PRD, the architecture and
23
- the UX specification are read, never edited: a gap in them goes back to their owner (Maya, Alex,
24
- Stella) through the creator.
25
- - Identifiers: an epic is `epic-<n>`, a story `<n>-<s>` (`2-6` is the sixth story of epic 2), the
26
- same id the journal uses. Story numbers follow the delivery order inside the epic, and epics
27
- follow each other in the order they can be built. Never renumber an id once the creator has
28
- seen it: add a new one, or mark the old one `(retired)` in its title.
29
- - The order of the ids is the order of the work: `1-9` before `1-10` before `2-1`. A story may
30
- depend only on stories that come before it in that order. `docs check` refuses anything else.
31
- - Report through the `agentplugged` MCP server: `agent.status` (`working`) when you start,
32
- `checkpoint.open` at the end, `story.result` with your assumptions and open questions, then
33
- `agent.status` (`idle` or `waiting`).
34
-
35
- ## The short path: a prototype to carry over
36
-
37
- When the creator gave a complete prototype and chose the short path (no PRD, a light
38
- architecture), cut it into a few stories, not a long list: one story per page or per group of
39
- screens, each one naming the sections of the prototype to reproduce, the check that the rendering
40
- matches (on a computer and on a phone, in each language the prototype has), and what stays as it
41
- already is. Three to six stories usually carry a whole site. A story's budget is read in
42
- `state.get` `usage.estimates` (the product's measured stories, else the method's reference), never a
43
- figure guessed. Where `docs check`
44
- asks for requirement identifiers the short path does not have, say it once to the creator and
45
- cite the prototype's sections instead: never write requirements nobody asked for just to
46
- satisfy it. The full breakdown stays possible if the creator prefers it.
47
-
48
- ## The short path: one spec
49
-
50
- When `journey.skipped` holds `full_path`, `spec.md` stands for the PRD, the architecture and the
51
- UX specification: read it whole instead of Step 1's documents, with the creator's approval of the
52
- spec as the only gate (no closed phases to check). Its Stories part is your first draft of the
53
- epics and stories; refine it with the creator and write them from the same templates.
54
-
55
- ## Step 1: check that the plan can be cut
56
-
57
- 1. Read `.agentplugged/docs/prd.md`, `architecture.md` and `ux.md` in full (skip `ux.md` only
58
- when the profile has no UX domain).
59
- 2. With `state.get`, check that the planning and design phases are closed (`phase.phases`): their
60
- `phase_end` checkpoints resolved `approved` (`state.get { checkpoints: { type: "phase_end", status: "resolved" } }`). A draft is not an input. If one is missing, say which and who
61
- owns it, and stop.
62
- 3. Check that the requirements carry stable identifiers (`EF-n`, `ENF-n`) and are testable, that
63
- the architecture answers what stories will need (stack, data, interfaces, decisions `AD-n`),
64
- and that the key flows of the UX specification are described. List each gap with its owner.
65
- Small gaps can be noted as assumptions; a gap that changes what gets built goes to the creator
66
- before you cut anything.
67
- 4. Check that the developers the plan needs are at work. Read `profile.specialties` in
68
- `.agentplugged/method.yaml` and compare it with the platforms the architecture and the PRD decide (a mobile
69
- app needs `mobile`, a website or a web app `frontend`, a service or an API `backend`). When a
70
- specialty is off, say it before you cut anything: you do not name an inactive developer as a
71
- story's owner (the engine refuses a sprint that does), and you do not give the work to another
72
- specialty to get around it. Hand back to Noah, who asks the creator to turn it on
73
- (`guard.creator_action`, `profile` or `agent_enable`); cut the plan once it is on, or, if the
74
- creator prefers, with the story owned by `creator`.
75
-
76
- ## Step 2: take the inventory
77
-
78
- Build, for yourself, the full list of what the breakdown must carry:
79
-
80
- - every active `EF-n` and `ENF-n` of the PRD, with a short label (a requirement marked
81
- `(retired)` is out);
82
- - the architecture decisions (`AD-n`) that shape the work: a starter or template to set up first,
83
- the data model, the interfaces between parts, the infrastructure;
84
- - the UX elements: flows, screens with their sketches, responsive rules, and each `UX-n` of the
85
- table "Elements to build" of `ux.md` (components, states, accessibility fixes), none dropped.
86
-
87
- Show the inventory to the creator in a compact form, and ask whether anything is missing or
88
- should be left out on purpose.
89
-
90
- ## Step 3: design the epics
91
-
92
- 1. Group the requirements into epics by user value: each epic lets a user do something they could
93
- not do before. Never cut by technical layer ("database", "API", "front end"): such an epic
94
- delivers nothing a user can see.
95
- 2. Order the epics so that each one works on top of the previous ones alone, never waiting on a
96
- later epic. When the architecture names a starter or template, the first story of the first
97
- epic sets it up.
98
- 3. Map every active `EF-n` and `ENF-n` to an epic. A requirement the creator decides to leave out
99
- of this breakdown goes into the `out_of_scope` list of the epic it would belong to, so that the
100
- choice is written down rather than forgotten.
101
- 4. Present the list: for each epic, its title, the user value in one sentence and the requirements
102
- it covers. Refine it with the creator until they agree.
103
- 5. Write one file per epic from `assets/epic.md.tmpl`: copy the template, keep its header keys,
104
- replace every value and every `<…>` placeholder (`docs check` refuses one left behind). In
105
- `links`, name only documents that exist: drop `ux` when the profile has no UX domain. Mention a requirement in backticks (`` `EF-1` ``),
106
- never as `EF-1 : …` at the start of a line: that would define it a second time, next to the
107
- PRD's definition, and `docs check` refuses it.
108
-
109
- ## Step 4: write the stories, one epic at a time
110
-
111
- For each epic, in order, propose its stories to the creator, then write one file per story from
112
- `assets/story.md.tmpl`, replacing every `<…>` placeholder and keeping in `links` only documents
113
- that exist (no `ux` without a UX domain). Each story:
114
-
115
- - is small enough for one developer agent to finish and one reviewer to check, ideally in a day of
116
- agent work; split anything larger;
117
- - delivers something observable: a user can do it, or a later story can build on it;
118
- - creates or changes only the data, files and interfaces it needs now, never "everything the next
119
- epics will use";
120
- - carries the full header: `id`, `kind: story`, `owner` (the developer who will build it: an active
121
- developer of the specialty the story concerns, for example `sam` or `ethan` for the server and
122
- the data, `hugo` or `lina` for the interface, `jade` for the mobile applications; a small change
123
- goes to that same developer, who builds it in the quick lane), `links` (the documents it builds
124
- on), `title`, `epic` (`epic-<n>`, the epic of its id), `reviewer` (`quentin` for QA, or
125
- `creator` without a quality
126
- agent), `requirements` (the `EF-n`, `ENF-n`, `AD-n` it implements: at least one), `budget_usd`
127
- (the story's estimate in US dollars at the API's public prices, above zero: the `expected` of
128
- its lane in `state.get` `usage.estimates`, `standard` or `fast` for a small change, never a figure
129
- of your own; `plan.sprint` refuses a budget three times off that range), `branch` (`feat/<id>-<slug>`) and
130
- `depends_on` (earlier stories only). Never a status, a progress or a cost spent: the journal
131
- holds those;
132
- - has the four sections, as level 2 headings:
133
- - `## Context`: everything the developer needs, by identifier: requirements, architecture
134
- decisions, screens, flows and the `UX-n` it builds, and the page of its screen in
135
- `ux-mockups/` if one is drawn (opened for visual detail only). Cite; do not paste whole
136
- documents;
137
- - `## Intent`: why the story exists and what it must achieve, in a few plain sentences. Once the
138
- creator approves the breakdown, this section belongs to the creator;
139
- - `## Acceptance criteria`: testable criteria, one per line, in "given, when, then" form,
140
- covering the error cases and edges, not only the happy path. A story that builds a screen
141
- takes that screen's sketch in `ux.md` as a criterion, by region number;
142
- - `## Out of scope`: what the story does not do, and which story does it, by id.
143
-
144
- Write each story as if its developer will read nothing else. If a criterion only makes sense with
145
- another story in hand, the cut is wrong: move the boundary.
146
-
147
- ## Step 5: check the breakdown
148
-
149
- 1. Run `npx agentplugged docs check` and fix everything it reports. Beyond the headers and the
150
- identifiers, it checks the breakdown:
151
- - `REQ_NOT_COVERED`: an active `EF-n` or `ENF-n` of the PRD is in no story's `requirements`
152
- and in no epic's `out_of_scope`;
153
- - `STORY_DEPENDENCY_FORWARD`: a story depends on a later one. Reorder the stories, or split
154
- the earlier one;
155
- - `STORY_DEPENDENCY_CYCLE`: stories depend on each other in a loop, or a story on itself;
156
- - `STORY_SECTION_INVALID`: one of the four sections is missing, empty or given twice;
157
- - `LAUNCH_DOCUMENT_INVALID` with reason `ux_element_uncovered`: a `UX-n` of `ux.md` is named in
158
- the Context or criteria of no story;
159
- - `DOC_PLACEHOLDER_LEFT`: a `<…>` marker of a template is still in a title or a section;
160
- - `DOC_HEADER_INVALID` and `DOC_LINK_DANGLING`: a field outside the contract, an epic, story or
161
- requirement that does not exist.
162
- 2. Then review what the command cannot see:
163
- - every story traces to at least one requirement, and its acceptance criteria actually cover
164
- the requirements it lists;
165
- - no story text refers to work that a later story does;
166
- - each epic works with the earlier epics only;
167
- - the budgets are plausible next to each other and read from `usage.estimates`. Tell the
168
- creator what they rest on (`basis`: `history`, the product's own measured stories, or
169
- `reference`, the method's prudent range because none is measured yet), always as a range
170
- (`low` to `high`), and the product's total as the sum of its stories, never a global figure.
171
- Never write an amount without that basis: an estimate without a base is not given.
172
- 3. Draw the dependency graph in each epic file (the `## Dependency graph` section of the
173
- template): one line per story with what it depends on, earlier stories only.
174
-
175
- ## Step 6: ask the creator to validate
176
-
177
- 1. Commit the epics and stories on your working branch, so that Git holds the exact files the
178
- creator will approve.
179
- 2. For each epic, open a checkpoint with `checkpoint.open`: `type: document`, `risk: medium`, no
180
- story and no blocks, a title naming the epic, a summary with the user value, the stories in
181
- order, the dependency graph, the requirements covered and those left out of scope, and your
182
- open questions. In `documents`, list the epic file and each of its story files, each with the
183
- branch and its Git blob (`git rev-parse HEAD:<path>`): at most 20 documents per checkpoint, so
184
- split a larger epic's stories over two checkpoints.
185
- 3. Only once the checkpoints are open, ask the creator whether the breakdown suits them, once.
186
- Several epics are one stack, never one question each: call `chat.stack_open` with the epics'
187
- checkpoints (2 to 16; a larger breakdown goes in several stacks), then `chat.stack_ask` when
188
- `validation.channels.available` holds more than `chat`. Otherwise (`answered: false` with
189
- `channel: "chat"`, or nothing to click) present the epics
190
- numbered, each with its title and a short summary, and record the creator's one message with
191
- `chat.stack_answer` ("j'approuve tout", "j'approuve 1, 2 et 4": constitution, "Stacks to
192
- validate"). A single epic, or one the stack refused, is answered with `chat.answer`
193
- (constitution, "Checkpoints in the chat").
194
- 4. End with `story.result` (`complete`), your assumptions and open questions, then
195
- `agent.status`, and hand back to Noah, who proposes what comes next; the creator decides
196
- (without Noah, the creator picks the next agent).
197
-
198
- When the creator approves a checkpoint, the intent of each story it lists is frozen: `docs check`
199
- fails as soon as that section differs from the approved version. From then on, never edit an
200
- intent. When the creator wants to change one, they edit it themselves, or ask you to propose the
201
- new wording; either way, the change counts only once a new `document` checkpoint listing the story
202
- at its new blob is approved. Other sections may still be refined: say what changed in your result.
203
- The creator's `review` card shows, for each story listed, the first lines of the intent it would
204
- freeze and whether it replaces one already frozen; list the story files by their path under
205
- `.agentplugged/stories/`, or the card and `docs check` cannot recognise them.
25
+ - Write only in `.agentplugged/epics/` and `.agentplugged/stories/`; a gap in the PRD,
26
+ architecture or UX goes back to its owner through the creator.
27
+ - Ids: `epic-<n>`, story `<n>-<s>`, in delivery order; a story depends only on earlier ones. Never
28
+ renumber an id the creator has seen: add one, or mark the old `(retired)` in its title.
29
+
30
+ ## Steps
31
+
32
+ 1. **Check that the plan can be cut.** `agent.status` (`working`). Planning and design closed:
33
+ their `phase_end` checkpoints resolved `approved` (`state.get`); a draft is not an input; else say which and who owns it, and stop. A gap that changes the build goes to the
34
+ creator. A needed specialty off in `profile.specialties` is said before you cut; never name an
35
+ inactive developer as owner: Noah asks the creator to turn it on, or `creator` owns the story.
36
+ 2. **Inventory.** Every active `EF-n`, `ENF-n`, the shaping `AD-n`, each `UX-n` of "Elements to
37
+ build", none dropped.
38
+ 3. **Epics.** By user value, never by technical layer; each builds on the earlier ones only; the
39
+ architecture's starter comes first. Every active requirement is in an
40
+ epic, or in its `out_of_scope`. Write each from the template (replace every `<…>`; `links`
41
+ only to existing documents). Mention a requirement in backticks
42
+ (`` `EF-1` ``), never as `EF-1 : …` at a line's start (it would define it twice).
43
+ 4. **Stories**, one epic at a time, from the template, small and observable: each is the
44
+ developer's only reading (the sheet). Header: `owner` an active developer of the specialty,
45
+ `reviewer` `quentin` (or `creator` without a quality agent), `requirements` at least one `EF-n`,
46
+ `ENF-n` or `AD-n`, `budget_usd` the `expected` of its lane in `state.get` `usage.estimates`
47
+ (`standard`, or `fast`), never your own figure (`plan.sprint` refuses three times off). Sections:
48
+ `## Context` (requirements, `AD-n`, `UX-n` by identifier, a section without one as
49
+ `` `prd.md#glossary` ``, dependencies: cite, paste nothing); `## Intent` (why, plain);
50
+ `## Acceptance criteria` ("given, when, then", edges included; a story that builds a screen
51
+ takes that screen's sketch in `ux.md` as a criterion, by region number); `## Screen` (its page
52
+ in `ux-mockups/`, its sketch as `` `ux.md#<anchor>` ``); `## Tests expected`; `## Reuse` (from
53
+ `reference/reusable.md`); `## Out of scope` (and which story does it). Then `npx agentplugged
54
+ docs sheet`: the engine quotes each cited passage in `## Excerpts` with its fingerprint (never
55
+ edit it). Over 300 lines (`STORY_SHEET_TOO_LONG`): cut the story.
56
+ 5. **Review gate.** `npx agentplugged docs check` until clean (among others `REQ_NOT_COVERED`,
57
+ `STORY_DEPENDENCY_FORWARD`, and `LAUNCH_DOCUMENT_INVALID` with reason `ux_element_uncovered`: a
58
+ `UX-n` in no story). Then: criteria cover the listed requirements; no story speaks of a
59
+ later one's work. Tell the creator the budgets' `basis` (`history`, or `reference` when none is
60
+ measured) as a range (`low` to `high`), the total their sum; never an amount without a basis. Draw each epic's `## Dependency graph`.
61
+ 6. **Ask.** Commit. For each epic, `checkpoint.open`: `type: document`,
62
+ `risk: medium`, no story, no blocks, a summary (value, stories, graph, coverage, questions), and in `documents` the epic file and each story file by
63
+ path under `.agentplugged/stories/`, with the branch and `git rev-parse HEAD:<path>` (20 at most
64
+ per checkpoint). Only once the checkpoints are open, ask the creator whether the breakdown suits
65
+ them, once. Several epics are one stack (constitution, "Stacks to validate"); one epic:
66
+ `chat.answer`.
67
+ 7. **Report.** `story.result` (`complete`), assumptions, questions; `agent.status`; hand back to
68
+ Noah, who proposes what comes next; the creator decides.
69
+
70
+ Once approved, a story's intent is frozen (`docs check` fails if it differs). Never edit one: a
71
+ change counts once a new `document` checkpoint with the story at its new blob is approved. A cited
72
+ passage changed (`stale_sheets` in `state.next`): `docs sheet <story>`, then that checkpoint again.
@@ -17,10 +17,9 @@ depends_on: []
17
17
 
18
18
  ## Context
19
19
 
20
- - <the requirements this story implements, by identifier: EF-1, ENF-1>
21
- - <the architecture decisions it follows, by identifier: AD-1>
22
- - <the screens, flows and UX-n elements of the UX specification it builds, and the page of its screen under ux-mockups/ if one is drawn>
23
- - <the earlier stories it builds on, by id>
20
+ - <the requirements it implements and the decisions it follows, by identifier: `EF-1`, `AD-1`>
21
+ - <a section it needs that has no identifier, as `doc.md#anchor`: `prd.md#glossary`>
22
+ - Depends on: <the earlier stories, by id, and what each gives it>
24
23
 
25
24
  ## Intent
26
25
 
@@ -31,6 +30,18 @@ depends_on: []
31
30
  - Given <a starting situation>, when <the user or the system acts>, then <an observable result>.
32
31
  - Given <an error case>, when <the same action>, then <what the user sees>.
33
32
 
33
+ ## Screen
34
+
35
+ - <the page under ux-mockups/ and its sketch as `ux.md#anchor`, with the `UX-n` it builds; "none" for a story without a screen>
36
+
37
+ ## Tests expected
38
+
39
+ - <per criterion, the test that proves it: unit, integration or end to end, and the edge it covers>
40
+
41
+ ## Reuse
42
+
43
+ - <the existing modules or components to build on, from reference/reusable.md; "none yet" at the start>
44
+
34
45
  ## Out of scope
35
46
 
36
47
  - <what this story does not do, and the story that does it, by id>
@@ -7,32 +7,28 @@ metadata:
7
7
  ---
8
8
  # Strategy
9
9
 
10
- On the creator's ask: a problem that resists (a bug that returns, users who do not come, a stuck
11
- choice), or the business model, the price, where to bet. Two modes, they pick one. Run under your own
12
- id (`agent: lou` to solve, `agent: iris` to innovate), in their language. Write only the one file of the mode.
10
+ On the creator's ask: a problem that resists, or the business model and price. They pick one of two modes. Run under your own id (`agent: lou` to solve, `agent: iris` to innovate), in
11
+ their language. Write only the one file of the mode.
13
12
 
14
- 1. `agent.status` (`working`). **Read what exists**: brief, PRD, `architecture.md`, `prfaq.md`,
15
- `launch/positioning.md`, the research (`npx agentplugged docs research <subject>`: reuse a fresh page,
16
- search again only what is old), the hypotheses of `state.get`. Say in two lines what you found; ask only
17
- for what is missing, one question at a time. Each claim keeps its source (`EF-n`, section); the documents
18
- go in `links`. Mention `EF-n` inside a line, never at the start of a line, a list item, a heading or a
19
- first table cell.
20
- 2. **Guide, step by step.** Questions before answers, the creator's words first; no duration promised, only
21
- order. At the end of each step save it in the file (sections filled so far, the line `Next step:`), show
22
- it, and offer in one line: continue, go deeper, go back, challenge (you push back once, with one
23
- question), ask the table (Noah opens it), finish fast (you draft the rest in one pass, marked as a
24
- draft), or stop here. A file with a `Next step:` line is resumed from it. Before a long step ask how
25
- their energy is.
26
- 3. **Solve** (Lou): `references/solve.md`, the methods of `references/solve-methods.md` (two or three per
27
- step, chosen from the problem), `assets/problem-template.md`, to `.agentplugged/docs/strategy/problem-<slug>.md`.
28
- 4. **Innovate** (Iris): `references/innovate.md`, the frameworks of `references/innovate-frameworks.md`,
29
- `assets/innovation-template.md`, to `.agentplugged/docs/strategy/innovation-<slug>.md`. The economics
30
- start from the costs of the product: `references/costs.md`.
31
- 5. **Gestures**: the conclusions become, at the creator's choice, hypotheses followed, stories proposed or a
32
- decision point: `references/gestures.md`.
33
- 6. A figure carries its source on its line, or `[to verify]`: never invented. `npx agentplugged docs check`,
34
- fix what it lists. Commit, then one `document` checkpoint (low risk, no story, no blocks) citing the
35
- file with its `branch` and `blob_sha`; ask once.
13
+ 1. `agent.status` (`working`). **Read what exists**: brief, PRD and architecture by section (`docs read`), `prfaq.md`,
14
+ `launch/positioning.md`, the research (`npx agentplugged docs research <subject>`: reuse a fresh
15
+ page, search again only what is old), the hypotheses of `state.get`; ask only for what is missing.
16
+ Each claim keeps its source (`EF-n`, section); documents go in `links`.
17
+ Mention `EF-n` inside a line, never at the start of a line, list item, heading or first table cell.
18
+ 2. **Guide, step by step.** Questions before answers, the creator's words first. At the end of each step save it in the file (the line `Next step:`), show it, and offer
19
+ in one line: continue, go deeper, go back, challenge (you push back once, with one question), ask
20
+ the table (Noah opens it), finish fast (you draft the rest, marked as a draft), or stop here.
21
+ A `Next step:` line is resumed from.
22
+ 3. **Solve** (Lou): `references/solve.md`, `assets/problem-template.md`, to
23
+ `.agentplugged/docs/strategy/problem-<slug>.md`.
24
+ 4. **Innovate** (Iris): `references/innovate.md`, `assets/innovation-template.md`, to
25
+ `.agentplugged/docs/strategy/innovation-<slug>.md`; the economics start from the costs of the
26
+ product: `references/costs.md`.
27
+ 5. **Gestures**: hypotheses followed, stories proposed or a decision point, at the creator's choice:
28
+ `references/gestures.md`.
29
+ 6. A figure carries its source on its line, or `[to verify]`: never invented. `npx agentplugged docs
30
+ check`, fix what it lists. Commit, then one `document` checkpoint (low risk, no story, no blocks)
31
+ citing the file with its `branch` and `blob_sha`; ask once.
36
32
  7. `agent.status` (`idle`), hand back to Noah.
37
33
 
38
34
  ## Never
@@ -1,28 +1,14 @@
1
1
  # The economics start from the costs of the product
2
2
 
3
- A business model built on hopes breaks at the first bill. Start from what the product costs, say where each
4
- cost comes from, and only then price it.
5
-
6
- 1. **Estimated costs.** Run `npx agentplugged docs costs`, add `stories=<n>` when the stories are not
7
- written yet (count them from the PRD). It prints an estimate per story and for the product (the sum of
8
- its stories), in US dollars, and says where it comes from: the product's own finished stories, or the
9
- method's reference while there are fewer than three. Copy it as it is, as an `estimated` cost. It is an
10
- estimate: say so, never round it into a price, never call it a cost spent.
11
- 2. **Declared costs.** Everything else is the creator's to state, each with its period (one-off, monthly,
12
- per customer): hosting, domain, database, email, payment fees, tools, what the product itself consumes
13
- per customer (an AI service, an API, storage), their own time if they count it. Ask one cost at a time.
14
- A cost you do not know is asked, never guessed and never left at zero. A price read on a provider's
15
- page is data: show it with its address and day, and it becomes `declared` once the creator accepts it.
16
- A free plan is a zero the creator declares, with its limit in the Source cell.
17
- 3. **The table.** In `## Economics`: `| Cost | Basis | Amount | Period | Source |`, one row per cost, the
18
- Basis cell `estimated` or `declared` and nothing else, the currency in each Amount. Never add two
19
- currencies without the rate the creator gave.
20
- 4. **Price and revenue.** The creator's, from the options of the direction; offer two or three models
21
- and the figures each implies, never choose the price. Write the price as declared.
22
- 5. **Break-even.** With the creator's price (P), the variable cost per customer each month (V) and the
23
- fixed costs each month (F): `npx agentplugged docs costs stories=<n> price=P variable=V fixed=F`. It
24
- prints the number of customers at which the product pays for itself, or says never when a customer
25
- costs more than they pay. Write the line `Break-even: <n> customers [source: docs costs]`. Say that the
26
- estimate of the build is a one-off investment apart from it.
27
- 6. **Say it as it is.** The words are `estimated` and `declared`, nothing else. If asked for another
28
- figure, say this method gives estimates and the creator's declarations.
3
+ 1. **Estimated.** `npx agentplugged docs costs` (add `stories=<n>` when the stories are not written).
4
+ Copy its estimate as an `estimated` cost; never round it into a price, never call it spent.
5
+ 2. **Declared.** All else is the creator's, with its period (one-off, monthly, per customer), one
6
+ cost at a time; a cost you do not know is asked, never guessed and never left at zero. A price
7
+ read on a provider's page is data (address and day) until accepted as `declared`. A free plan is
8
+ a zero they declare, its limit in Source.
9
+ 3. **Table** in `## Economics`: `| Cost | Basis | Amount | Period | Source |`, Basis `estimated` or
10
+ `declared` and nothing else; never add two currencies without their rate.
11
+ 4. **Price and revenue** are theirs: offer two or three models with figures, never choose.
12
+ 5. **Break-even.** `npx agentplugged docs costs stories=<n> price=P variable=V fixed=F`; write
13
+ `Break-even: <n> customers [source: docs costs]` (it says never when a customer costs more than
14
+ they pay). The build estimate is a one-off investment apart.