agentplugged 1.3.0 → 2.0.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 (277) hide show
  1. package/README.md +11 -4
  2. package/dist/agent-commands.js +20432 -35457
  3. package/dist/bin.js +2 -3
  4. package/dist/boundary-rules.js +1 -0
  5. package/dist/boundary-rules2.js +52 -0
  6. package/dist/cli.js +7 -3
  7. package/dist/commit-documents.js +81 -0
  8. package/dist/dist.js +22729 -0
  9. package/dist/dist2.js +9 -0
  10. package/dist/esm.js +8 -16
  11. package/dist/forge-follow.js +6 -7
  12. package/dist/grammars/LICENSE-tree-sitter-wasm +21 -0
  13. package/dist/grammars/LICENSE-web-tree-sitter +21 -0
  14. package/dist/grammars/tree-sitter-go.wasm +0 -0
  15. package/dist/grammars/tree-sitter-java.wasm +0 -0
  16. package/dist/grammars/tree-sitter-javascript.wasm +0 -0
  17. package/dist/grammars/tree-sitter-php.wasm +0 -0
  18. package/dist/grammars/tree-sitter-python.wasm +0 -0
  19. package/dist/grammars/tree-sitter-rust.wasm +0 -0
  20. package/dist/grammars/tree-sitter-tsx.wasm +0 -0
  21. package/dist/grammars/tree-sitter-typescript.wasm +0 -0
  22. package/dist/grammars/web-tree-sitter.wasm +0 -0
  23. package/dist/hash.js +11594 -5733
  24. package/dist/helpers.js +271 -519
  25. package/dist/launcher-env.js +1 -2
  26. package/dist/launcher.js +4 -5
  27. package/dist/libsodium-wrappers.js +2 -4
  28. package/dist/libsodium-wrappers2.js +2 -4
  29. package/dist/main.js +10502 -2787
  30. package/dist/map-cache.js +8096 -0
  31. package/dist/map-update.js +16593 -0
  32. package/dist/map-update2.js +1 -0
  33. package/dist/method/agents/alex/SKILL.md +13 -29
  34. package/dist/method/agents/alex/agent.yaml +3 -3
  35. package/dist/method/agents/basile/SKILL.md +44 -0
  36. package/dist/method/agents/basile/agent.yaml +69 -0
  37. package/dist/method/agents/chloe/SKILL.md +12 -25
  38. package/dist/method/agents/chloe/agent.yaml +3 -3
  39. package/dist/method/agents/ethan/SKILL.md +8 -9
  40. package/dist/method/agents/ethan/agent.yaml +9 -8
  41. package/dist/method/agents/hugo/SKILL.md +8 -8
  42. package/dist/method/agents/hugo/agent.yaml +9 -8
  43. package/dist/method/agents/iris/SKILL.md +11 -17
  44. package/dist/method/agents/iris/agent.yaml +4 -7
  45. package/dist/method/agents/izzy/SKILL.md +68 -91
  46. package/dist/method/agents/izzy/agent.yaml +8 -15
  47. package/dist/method/agents/jade/SKILL.md +7 -9
  48. package/dist/method/agents/jade/agent.yaml +9 -8
  49. package/dist/method/agents/julien/SKILL.md +38 -58
  50. package/dist/method/agents/lina/SKILL.md +7 -9
  51. package/dist/method/agents/lina/agent.yaml +9 -8
  52. package/dist/method/agents/lou/SKILL.md +4 -11
  53. package/dist/method/agents/lou/agent.yaml +2 -2
  54. package/dist/method/agents/maya/SKILL.md +12 -19
  55. package/dist/method/agents/maya/agent.yaml +2 -4
  56. package/dist/method/agents/milo/SKILL.md +21 -32
  57. package/dist/method/agents/noah/SKILL.md +105 -63
  58. package/dist/method/agents/noah/agent.yaml +15 -35
  59. package/dist/method/agents/noah/evals/routes.yaml +238 -0
  60. package/dist/method/agents/noah/references/decisions.md +59 -121
  61. package/dist/method/agents/noah/references/environment.md +25 -70
  62. package/dist/method/agents/noah/references/facts.md +22 -11
  63. package/dist/method/agents/noah/references/journey.md +26 -78
  64. package/dist/method/agents/noah/references/team.md +67 -190
  65. package/dist/method/agents/omar/SKILL.md +14 -30
  66. package/dist/method/agents/omar/agent.yaml +12 -6
  67. package/dist/method/agents/quentin/SKILL.md +7 -15
  68. package/dist/method/agents/quentin/agent.yaml +4 -2
  69. package/dist/method/agents/sam/SKILL.md +6 -8
  70. package/dist/method/agents/sam/agent.yaml +9 -8
  71. package/dist/method/agents/stella/SKILL.md +6 -14
  72. package/dist/method/agents/stella/agent.yaml +1 -1
  73. package/dist/method/agents/tess/SKILL.md +7 -14
  74. package/dist/method/agents/tess/agent.yaml +2 -2
  75. package/dist/method/agents/zoe/SKILL.md +9 -21
  76. package/dist/method/doctor.yaml +553 -13
  77. package/dist/method/models.yaml +12 -0
  78. package/dist/method/skills/acceptance-qa/SKILL.md +1 -1
  79. package/dist/method/skills/acceptance-qa/references/run.md +24 -32
  80. package/dist/method/skills/acceptance-qa/references/scenarios.md +16 -19
  81. package/dist/method/skills/acceptance-qa/references/verdicts.md +10 -16
  82. package/dist/method/skills/api-e2e-tests/SKILL.md +46 -46
  83. package/dist/method/skills/audit-pillars/SKILL.md +13 -10
  84. package/dist/method/skills/audit-pillars/references/demo.md +35 -0
  85. package/dist/method/skills/audit-pillars/references/pillars.md +40 -0
  86. package/dist/method/skills/audit-pillars/references/tech-debt.md +38 -0
  87. package/dist/method/skills/chain-stories/SKILL.md +5 -4
  88. package/dist/method/skills/chain-stories/references/merge-order.md +23 -0
  89. package/dist/method/skills/check-readiness/SKILL.md +1 -1
  90. package/dist/method/skills/check-requirements/SKILL.md +37 -72
  91. package/dist/method/skills/check-requirements/references/engine-proofs.md +16 -23
  92. package/dist/method/skills/check-requirements/references/proofs-and-gaps.md +22 -37
  93. package/dist/method/skills/critique-deliverable/SKILL.md +3 -3
  94. package/dist/method/skills/critique-deliverable/references/choose.md +12 -21
  95. package/dist/method/skills/critique-deliverable/references/format.md +14 -20
  96. package/dist/method/skills/critique-deliverable/references/gestures.md +14 -21
  97. package/dist/method/skills/critique-deliverable/references/judgment.md +4 -9
  98. package/dist/method/skills/critique-deliverable/references/methods.md +21 -0
  99. package/dist/method/skills/critique-deliverable/references/reconcile.md +6 -11
  100. package/dist/method/skills/deep-research/SKILL.md +16 -24
  101. package/dist/method/skills/deep-research/references/candidates.md +13 -25
  102. package/dist/method/skills/deep-research/references/external.md +15 -34
  103. package/dist/method/skills/deep-research/references/page-format.md +16 -42
  104. package/dist/method/skills/deep-research/references/types.md +16 -27
  105. package/dist/method/skills/develop-story/SKILL.md +56 -189
  106. package/dist/method/skills/develop-story/references/acceptance-tests.md +18 -71
  107. package/dist/method/skills/develop-story/references/quick-lane.md +20 -0
  108. package/dist/method/skills/diagnose-bug/SKILL.md +42 -53
  109. package/dist/method/skills/diagnose-bug/references/hypotheses.md +1 -2
  110. package/dist/method/skills/generate-knowledge-base/SKILL.md +57 -226
  111. package/dist/method/skills/generate-knowledge-base/assets/index-template.md +6 -15
  112. package/dist/method/skills/generate-knowledge-base/assets/page-template.md +11 -24
  113. package/dist/method/skills/generate-knowledge-base/references/living-docs.md +25 -64
  114. package/dist/method/skills/generate-knowledge-base/references/reuse-map.md +9 -18
  115. package/dist/method/skills/ideation/SKILL.md +16 -23
  116. package/dist/method/skills/ideation/references/close.md +18 -14
  117. package/dist/method/skills/ideation/references/converge.md +11 -21
  118. package/dist/method/skills/ideation/references/stances.md +13 -17
  119. package/dist/method/skills/ideation/references/techniques.md +20 -0
  120. package/dist/method/skills/improve-code/SKILL.md +42 -54
  121. package/dist/method/skills/pitch/SKILL.md +16 -19
  122. package/dist/method/skills/pitch/references/deck.md +15 -18
  123. package/dist/method/skills/pitch/references/design-implementation.md +13 -21
  124. package/dist/method/skills/pitch/references/design.md +21 -0
  125. package/dist/method/skills/pitch/references/story.md +13 -18
  126. package/dist/method/skills/plan-sprint/SKILL.md +50 -151
  127. package/dist/method/skills/plan-sprint/references/rituals.md +40 -0
  128. package/dist/method/skills/prepare-go-live/SKILL.md +59 -0
  129. package/dist/method/skills/resolve-merge-conflict/SKILL.md +40 -65
  130. package/dist/method/skills/review-after-launch/SKILL.md +56 -0
  131. package/dist/method/skills/review-story/SKILL.md +44 -72
  132. package/dist/method/skills/review-story/references/amend-story.md +8 -13
  133. package/dist/method/skills/review-story/references/export.md +7 -17
  134. package/dist/method/skills/review-story/references/free-review.md +9 -20
  135. package/dist/method/skills/review-story/references/judge.md +25 -37
  136. package/dist/method/skills/review-story/references/tests.md +29 -0
  137. package/dist/method/skills/run-acceptance/SKILL.md +58 -0
  138. package/dist/method/skills/run-acceptance/references/template.md +39 -0
  139. package/dist/method/skills/run-retrospective/SKILL.md +50 -189
  140. package/dist/method/skills/security-review-architecture/SKILL.md +46 -109
  141. package/dist/method/skills/security-review-architecture/references/spec-review.md +27 -38
  142. package/dist/method/skills/setup-ci/SKILL.md +46 -109
  143. package/dist/method/skills/setup-ci/assets/access-check.mjs +116 -0
  144. package/dist/method/skills/setup-ci/assets/security-github.yml +41 -0
  145. package/dist/method/skills/setup-ci/assets/security-gitlab.yml +22 -0
  146. package/dist/method/skills/setup-ci/assets/stack-dotnet-github.yml +118 -0
  147. package/dist/method/skills/setup-ci/assets/stack-dotnet-gitlab.yml +63 -0
  148. package/dist/method/skills/setup-ci/assets/stack-go-github.yml +118 -0
  149. package/dist/method/skills/setup-ci/assets/stack-go-gitlab.yml +63 -0
  150. package/dist/method/skills/setup-ci/assets/stack-jvm-gradle-github.yml +134 -0
  151. package/dist/method/skills/setup-ci/assets/stack-jvm-gradle-gitlab.yml +71 -0
  152. package/dist/method/skills/setup-ci/assets/stack-jvm-maven-github.yml +133 -0
  153. package/dist/method/skills/setup-ci/assets/stack-jvm-maven-gitlab.yml +70 -0
  154. package/dist/method/skills/setup-ci/assets/stack-python-github.yml +123 -0
  155. package/dist/method/skills/setup-ci/assets/stack-python-gitlab.yml +68 -0
  156. package/dist/method/skills/setup-ci/assets/stack-rust-github.yml +107 -0
  157. package/dist/method/skills/setup-ci/assets/stack-rust-gitlab.yml +64 -0
  158. package/dist/method/skills/setup-ci/references/security.md +39 -0
  159. package/dist/method/skills/setup-ci/references/stacks.md +22 -0
  160. package/dist/method/skills/split-into-stories/SKILL.md +59 -192
  161. package/dist/method/skills/split-into-stories/assets/story.md.tmpl +15 -4
  162. package/dist/method/skills/strategy/SKILL.md +20 -25
  163. package/dist/method/skills/strategy/references/costs.md +12 -26
  164. package/dist/method/skills/strategy/references/gestures.md +12 -21
  165. package/dist/method/skills/strategy/references/innovate.md +19 -37
  166. package/dist/method/skills/strategy/references/solve.md +19 -32
  167. package/dist/method/skills/test-idea/SKILL.md +5 -5
  168. package/dist/method/skills/test-idea/assets/prfaq-template.md +1 -1
  169. package/dist/method/skills/test-idea/references/faq.md +12 -29
  170. package/dist/method/skills/test-idea/references/forge.md +19 -30
  171. package/dist/method/skills/test-idea/references/personas.md +16 -19
  172. package/dist/method/skills/test-idea/references/prfaq.md +31 -31
  173. package/dist/method/skills/workshop/SKILL.md +10 -16
  174. package/dist/method/skills/workshop/references/create.md +28 -45
  175. package/dist/method/skills/workshop/references/customize.md +17 -42
  176. package/dist/method/skills/workshop/references/evaluate.md +11 -42
  177. package/dist/method/skills/workshop/references/rules.md +17 -26
  178. package/dist/method/skills/write-architecture/SKILL.md +62 -220
  179. package/dist/method/skills/write-architecture/references/guard.md +12 -27
  180. package/dist/method/skills/write-architecture/references/self-check.md +22 -38
  181. package/dist/method/skills/write-brand/SKILL.md +2 -2
  182. package/dist/method/skills/write-brand/references/identity.md +21 -22
  183. package/dist/method/skills/write-brand/references/platform.md +13 -20
  184. package/dist/method/skills/write-brand/references/rules.md +16 -22
  185. package/dist/method/skills/write-brief/SKILL.md +55 -149
  186. package/dist/method/skills/write-brief/assets/brief-template.md +7 -5
  187. package/dist/method/skills/write-brief/references/brief-checklist.md +18 -30
  188. package/dist/method/skills/write-content/SKILL.md +53 -210
  189. package/dist/method/skills/write-content/references/content-checklist.md +32 -50
  190. package/dist/method/skills/write-positioning/SKILL.md +53 -197
  191. package/dist/method/skills/write-positioning/references/positioning-checklist.md +15 -41
  192. package/dist/method/skills/write-positioning/references/seo-checklist.md +26 -51
  193. package/dist/method/skills/write-prd/SKILL.md +52 -179
  194. package/dist/method/skills/write-prd/references/prd-checklist.md +25 -54
  195. package/dist/method/skills/write-sales/SKILL.md +48 -212
  196. package/dist/method/skills/write-sales/references/before-you-send.md +21 -49
  197. package/dist/method/skills/write-sales/references/sales-checklist.md +19 -69
  198. package/dist/method/skills/write-spec/references/spec-guide.md +20 -23
  199. package/dist/method/skills/write-ux-spec/SKILL.md +57 -168
  200. package/dist/method/skills/write-ux-spec/references/accessibility-check.md +13 -72
  201. package/dist/method/skills/write-ux-spec/references/mockups.md +6 -68
  202. package/dist/method/skills/write-ux-spec/references/tokens-and-sketches.md +8 -81
  203. package/dist/method/skills/write-ux-spec/references/ux-checklist.md +12 -67
  204. package/dist/product-root.js +96 -20743
  205. package/dist/project-command.js +776 -0
  206. package/dist/project-command2.js +1 -0
  207. package/dist/read-command.js +19 -0
  208. package/dist/rolldown-runtime.js +1 -2
  209. package/dist/sheet-command.js +58 -0
  210. package/dist/webauthn-verify.js +3 -5
  211. package/package.json +13 -11
  212. package/dist/method/agents/noah/references/conduct.md +0 -102
  213. package/dist/method/skills/api-e2e-tests/references/frameworks.md +0 -58
  214. package/dist/method/skills/api-e2e-tests/references/generate.md +0 -67
  215. package/dist/method/skills/audit-pillars/references/accessibility.md +0 -13
  216. package/dist/method/skills/audit-pillars/references/architecture.md +0 -13
  217. package/dist/method/skills/audit-pillars/references/dependencies.md +0 -13
  218. package/dist/method/skills/audit-pillars/references/format.md +0 -20
  219. package/dist/method/skills/audit-pillars/references/interface.md +0 -13
  220. package/dist/method/skills/audit-pillars/references/method.md +0 -33
  221. package/dist/method/skills/audit-pillars/references/performance.md +0 -17
  222. package/dist/method/skills/audit-pillars/references/quality.md +0 -11
  223. package/dist/method/skills/audit-pillars/references/security.md +0 -13
  224. package/dist/method/skills/audit-pillars/references/tests.md +0 -17
  225. package/dist/method/skills/critique-deliverable/references/assumption-audit.md +0 -11
  226. package/dist/method/skills/critique-deliverable/references/compare-existing.md +0 -13
  227. package/dist/method/skills/critique-deliverable/references/devils-advocate.md +0 -13
  228. package/dist/method/skills/critique-deliverable/references/divergence.md +0 -15
  229. package/dist/method/skills/critique-deliverable/references/domain-expert.md +0 -14
  230. package/dist/method/skills/critique-deliverable/references/extreme-user.md +0 -13
  231. package/dist/method/skills/critique-deliverable/references/failure-modes.md +0 -13
  232. package/dist/method/skills/critique-deliverable/references/first-principles.md +0 -12
  233. package/dist/method/skills/critique-deliverable/references/inversion.md +0 -13
  234. package/dist/method/skills/critique-deliverable/references/pre-mortem.md +0 -12
  235. package/dist/method/skills/critique-deliverable/references/red-team.md +0 -12
  236. package/dist/method/skills/critique-deliverable/references/reframe.md +0 -12
  237. package/dist/method/skills/critique-deliverable/references/second-order.md +0 -12
  238. package/dist/method/skills/critique-deliverable/references/socratic.md +0 -15
  239. package/dist/method/skills/critique-deliverable/references/steelman.md +0 -13
  240. package/dist/method/skills/critique-deliverable/references/subtraction.md +0 -12
  241. package/dist/method/skills/develop-story/references/self-check.md +0 -46
  242. package/dist/method/skills/generate-knowledge-base/references/kb-checklist.md +0 -49
  243. package/dist/method/skills/generate-knowledge-base/references/repository-scan.md +0 -48
  244. package/dist/method/skills/ideation/references/choose.md +0 -21
  245. package/dist/method/skills/ideation/references/gestures.md +0 -15
  246. package/dist/method/skills/ideation/references/techniques-borrowed.md +0 -8
  247. package/dist/method/skills/ideation/references/techniques-deep.md +0 -12
  248. package/dist/method/skills/ideation/references/techniques-frames.md +0 -12
  249. package/dist/method/skills/ideation/references/techniques-futures.md +0 -8
  250. package/dist/method/skills/ideation/references/techniques-limits.md +0 -9
  251. package/dist/method/skills/ideation/references/techniques-people.md +0 -7
  252. package/dist/method/skills/ideation/references/techniques-sparks.md +0 -10
  253. package/dist/method/skills/ideation/references/techniques-together.md +0 -11
  254. package/dist/method/skills/order-merges/SKILL.md +0 -71
  255. package/dist/method/skills/pitch/references/deck-types.md +0 -17
  256. package/dist/method/skills/pitch/references/design-methods.md +0 -45
  257. package/dist/method/skills/pitch/references/design-thinking.md +0 -28
  258. package/dist/method/skills/pitch/references/story-frameworks.md +0 -39
  259. package/dist/method/skills/quick-lane/SKILL.md +0 -143
  260. package/dist/method/skills/review-tests/SKILL.md +0 -32
  261. package/dist/method/skills/review-tests/references/check.md +0 -25
  262. package/dist/method/skills/review-tests/references/grid.md +0 -27
  263. package/dist/method/skills/round-table/SKILL.md +0 -31
  264. package/dist/method/skills/round-table/evals/cases.yaml +0 -27
  265. package/dist/method/skills/round-table/references/cast.md +0 -14
  266. package/dist/method/skills/round-table/references/gestures.md +0 -24
  267. package/dist/method/skills/round-table/references/guests.md +0 -17
  268. package/dist/method/skills/round-table/references/independence.md +0 -21
  269. package/dist/method/skills/round-table/references/rooms.md +0 -29
  270. package/dist/method/skills/round-table/references/three-views.md +0 -17
  271. package/dist/method/skills/round-table/references/turns.md +0 -19
  272. package/dist/method/skills/strategy/references/innovate-frameworks.md +0 -48
  273. package/dist/method/skills/strategy/references/solve-methods.md +0 -45
  274. package/dist/method/skills/test-idea/references/bets.md +0 -14
  275. package/dist/method/skills/test-idea/references/concept.md +0 -24
  276. package/dist/method/skills/test-idea/references/verdict.md +0 -26
  277. package/dist/method/skills/workshop/references/analyze.md +0 -36
@@ -0,0 +1,107 @@
1
+ # Base CI for Rust (cargo test, clippy, cargo audit): a template of the method, advice only.
2
+ # Yours to edit or to leave: decline it and nothing else changes. It makes no call to the method;
3
+ # every tool below is the ecosystem's own and free.
4
+ # One job per check of the pull request (lint, test, build, audit). A failed job keeps its logs and
5
+ # reports in `reports/` as a CI artifact. Adjust versions and paths to your product.
6
+ # Test and audit need a committed Cargo.lock (a library may not have one: commit it or drop --locked).
7
+ name: CI
8
+
9
+ on:
10
+ pull_request:
11
+ push:
12
+ branches: [main]
13
+
14
+ permissions:
15
+ contents: read
16
+
17
+ concurrency:
18
+ group: ci-${{ github.ref }}
19
+ cancel-in-progress: true
20
+
21
+ defaults:
22
+ run:
23
+ shell: bash
24
+
25
+ jobs:
26
+ lint:
27
+ name: lint
28
+ runs-on: ubuntu-latest
29
+ timeout-minutes: 15
30
+ steps:
31
+ - uses: actions/checkout@v4
32
+ - name: lint
33
+ run: |
34
+ mkdir -p reports
35
+ rustup component add clippy rustfmt 2>&1 | tee -a reports/lint.txt
36
+ cargo fmt --check 2>&1 | tee -a reports/lint.txt
37
+ cargo clippy --all-targets -- -D warnings 2>&1 | tee -a reports/lint.txt
38
+ - name: Keep the evidence
39
+ if: failure()
40
+ uses: actions/upload-artifact@v4
41
+ with:
42
+ name: lint-evidence
43
+ path: |
44
+ reports/
45
+ if-no-files-found: ignore
46
+ retention-days: 14
47
+
48
+ test:
49
+ name: test
50
+ runs-on: ubuntu-latest
51
+ timeout-minutes: 30
52
+ steps:
53
+ - uses: actions/checkout@v4
54
+ - name: test
55
+ run: |
56
+ mkdir -p reports
57
+ cargo test --locked 2>&1 | tee -a reports/test.txt
58
+ - name: Keep the evidence
59
+ if: failure()
60
+ uses: actions/upload-artifact@v4
61
+ with:
62
+ name: test-evidence
63
+ path: |
64
+ reports/
65
+ if-no-files-found: ignore
66
+ retention-days: 14
67
+
68
+ build:
69
+ name: build
70
+ runs-on: ubuntu-latest
71
+ timeout-minutes: 15
72
+ steps:
73
+ - uses: actions/checkout@v4
74
+ - name: build
75
+ run: |
76
+ mkdir -p reports
77
+ cargo build --locked --release 2>&1 | tee -a reports/build.txt
78
+ - name: Keep the evidence
79
+ if: failure()
80
+ uses: actions/upload-artifact@v4
81
+ with:
82
+ name: build-evidence
83
+ path: |
84
+ reports/
85
+ if-no-files-found: ignore
86
+ retention-days: 14
87
+
88
+ audit:
89
+ name: audit
90
+ runs-on: ubuntu-latest
91
+ timeout-minutes: 10
92
+ steps:
93
+ - uses: actions/checkout@v4
94
+ - name: audit
95
+ run: |
96
+ mkdir -p reports
97
+ cargo install cargo-audit --locked 2>&1 | tee -a reports/audit.txt
98
+ cargo audit 2>&1 | tee -a reports/audit.txt
99
+ - name: Keep the evidence
100
+ if: failure()
101
+ uses: actions/upload-artifact@v4
102
+ with:
103
+ name: audit-evidence
104
+ path: |
105
+ reports/
106
+ if-no-files-found: ignore
107
+ retention-days: 14
@@ -0,0 +1,64 @@
1
+ # Base CI for Rust (cargo test, clippy, cargo audit): a template of the method, advice only.
2
+ # Yours to edit or to leave: decline it and nothing else changes. It makes no call to the method;
3
+ # every tool below is the ecosystem's own and free.
4
+ # One job per check of the merge request (lint, test, build, audit). A failed job keeps its logs and
5
+ # reports in `reports/` as a CI artifact. Adjust versions and paths to your product.
6
+ # Test and audit need a committed Cargo.lock (a library may not have one: commit it or drop --locked).
7
+ image: rust:1
8
+
9
+ stages:
10
+ - check
11
+
12
+ default:
13
+ timeout: 30 minutes
14
+
15
+ lint:
16
+ stage: check
17
+ script:
18
+ - set -o pipefail
19
+ - mkdir -p reports
20
+ - 'rustup component add clippy rustfmt 2>&1 | tee -a reports/lint.txt'
21
+ - 'cargo fmt --check 2>&1 | tee -a reports/lint.txt'
22
+ - 'cargo clippy --all-targets -- -D warnings 2>&1 | tee -a reports/lint.txt'
23
+ artifacts:
24
+ when: on_failure
25
+ expire_in: 2 weeks
26
+ paths:
27
+ - reports/
28
+
29
+ test:
30
+ stage: check
31
+ script:
32
+ - set -o pipefail
33
+ - mkdir -p reports
34
+ - 'cargo test --locked 2>&1 | tee -a reports/test.txt'
35
+ artifacts:
36
+ when: on_failure
37
+ expire_in: 2 weeks
38
+ paths:
39
+ - reports/
40
+
41
+ build:
42
+ stage: check
43
+ script:
44
+ - set -o pipefail
45
+ - mkdir -p reports
46
+ - 'cargo build --locked --release 2>&1 | tee -a reports/build.txt'
47
+ artifacts:
48
+ when: on_failure
49
+ expire_in: 2 weeks
50
+ paths:
51
+ - reports/
52
+
53
+ audit:
54
+ stage: check
55
+ script:
56
+ - set -o pipefail
57
+ - mkdir -p reports
58
+ - 'cargo install cargo-audit --locked 2>&1 | tee -a reports/audit.txt'
59
+ - 'cargo audit 2>&1 | tee -a reports/audit.txt'
60
+ artifacts:
61
+ when: on_failure
62
+ expire_in: 2 weeks
63
+ paths:
64
+ - reports/
@@ -0,0 +1,39 @@
1
+ # Security checks of the CI
2
+
3
+ `npx agentplugged ci setup` writes them beside the base checks, for any language. Read its
4
+ `security` field and `todo`. GitHub: `.github/workflows/security.yml`; GitLab: three more jobs in
5
+ `.gitlab-ci.yml`. A CI that already exists gets the workflow too (GitHub) or a `todo` naming the
6
+ jobs to add. The jobs keep these names: the engine reads them for the commit to release.
7
+
8
+ - `secrets`: gitleaks over the whole history.
9
+ - `sast`: semgrep with its default rules (`p/default`), no account.
10
+ - `access`: only when `.agentplugged/access.json` declares a role. No role: the job is not
11
+ written, the result says `not_required`, nothing is skipped silently.
12
+
13
+ ## Declaring roles and routes
14
+
15
+ Ask the architecture for the roles, then write `.agentplugged/access.json` (then run `ci setup`
16
+ again; the script `.agentplugged/ci/access-check.mjs` is the method's, never edited):
17
+
18
+ ```json
19
+ {
20
+ "start": "npm start",
21
+ "base_url": "http://localhost:3000",
22
+ "roles": {
23
+ "admin": { "headers": { "Authorization": "Bearer ${TOKEN_ADMIN}" } },
24
+ "member": { "headers": { "Authorization": "Bearer ${TOKEN_MEMBER}" } }
25
+ },
26
+ "routes": [
27
+ { "method": "GET", "path": "/admin/users", "allow": ["admin"] },
28
+ { "method": "GET", "path": "/account", "allow": ["admin", "member"] },
29
+ { "method": "GET", "path": "/", "allow": ["anonymous"] }
30
+ ]
31
+ }
32
+ ```
33
+
34
+ - `start` is the command that runs the product in the CI; leave it out when it runs already.
35
+ - `${NAME}` is a secret of the forge, by name (test accounts only, never a real one); the
36
+ workflow passes it. Ask the creator to create it, never put a value in the file.
37
+ - A caller listed in `allow` must reach the route (a 2xx status); any other, `anonymous`
38
+ included, must get 401, 403, 404 or a redirect. At least one route is required.
39
+ - List every route that checks who calls it, at least one per role.
@@ -0,0 +1,22 @@
1
+ # Other stacks: ready-made base workflows
2
+
3
+ When `npx agentplugged ci setup` reports a stack it does not know (`other`), or the product is not
4
+ Node.js, pick the template of the stack from its manifest, copy it as the CI file of the forge, then
5
+ complete it as in step 3 of the sheet. It is advice: the creator can decline it, and nothing is
6
+ imposed.
7
+
8
+ | Manifest | GitHub Actions (`.github/workflows/ci.yml`) | GitLab (`.gitlab-ci.yml`) |
9
+ |---|---|---|
10
+ | `pyproject.toml`, `requirements.txt` | `assets/stack-python-github.yml` | `assets/stack-python-gitlab.yml` |
11
+ | `go.mod` | `assets/stack-go-github.yml` | `assets/stack-go-gitlab.yml` |
12
+ | `Cargo.toml` | `assets/stack-rust-github.yml` | `assets/stack-rust-gitlab.yml` |
13
+ | `pom.xml` | `assets/stack-jvm-maven-github.yml` | `assets/stack-jvm-maven-gitlab.yml` |
14
+ | `build.gradle(.kts)` | `assets/stack-jvm-gradle-github.yml` | `assets/stack-jvm-gradle-gitlab.yml` |
15
+ | `*.sln`, `*.csproj` | `assets/stack-dotnet-github.yml` | `assets/stack-dotnet-gitlab.yml` |
16
+
17
+ - Each has the four jobs `lint`, `test`, `build`, `audit`, with the ecosystem's own free tools, and
18
+ keeps the logs and reports of a failed job (`reports/`) as a CI artifact.
19
+ - Read the notes at the top of the file and adjust versions, paths and the main branch. Never
20
+ weaken a job to turn it green (step 3 holds).
21
+ - No template for the stack: keep the `TODO` plan of `ci setup`.
22
+ - The security jobs are separate: `references/security.md` still applies.
@@ -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,27 @@ 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), finish fast (you draft the rest, marked as a draft), or stop here.
20
+ A `Next step:` line is resumed from.
21
+ 3. **Solve** (Lou): `references/solve.md`, `assets/problem-template.md`, to
22
+ `.agentplugged/docs/strategy/problem-<slug>.md`.
23
+ 4. **Innovate** (Iris): `references/innovate.md`, `assets/innovation-template.md`, to
24
+ `.agentplugged/docs/strategy/innovation-<slug>.md`; the economics start from the costs of the
25
+ product: `references/costs.md`.
26
+ 5. **Gestures**: hypotheses followed, stories proposed or a decision point, at the creator's choice:
27
+ `references/gestures.md`.
28
+ 6. A figure carries its source on its line, or `[to verify]`: never invented. `npx agentplugged docs
29
+ check`, fix what it lists. Commit, then one `document` checkpoint (low risk, no story, no blocks)
30
+ citing the file with its `branch` and `blob_sha`; ask once.
36
31
  7. `agent.status` (`idle`), hand back to Noah.
37
32
 
38
33
  ## Never