agentplugged 0.0.1 → 1.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 (284) hide show
  1. package/LICENSE-METHOD +21 -0
  2. package/README.md +240 -16
  3. package/dist/agent-commands.js +46532 -0
  4. package/dist/bin.js +13 -0
  5. package/dist/cli.js +44 -0
  6. package/dist/esm.js +920 -0
  7. package/dist/forge-follow.js +231 -0
  8. package/dist/helpers.js +18526 -0
  9. package/dist/helpers2.js +1 -0
  10. package/dist/launcher-env.js +13 -0
  11. package/dist/launcher.js +308 -0
  12. package/dist/libsodium-wrappers.js +4384 -0
  13. package/dist/libsodium-wrappers2.js +4384 -0
  14. package/dist/main.js +17732 -0
  15. package/dist/method/LICENSE +21 -0
  16. package/dist/method/agents/alex/SKILL.md +87 -0
  17. package/dist/method/agents/alex/agent.yaml +94 -0
  18. package/dist/method/agents/chloe/SKILL.md +97 -0
  19. package/dist/method/agents/chloe/agent.yaml +87 -0
  20. package/dist/method/agents/ethan/SKILL.md +55 -0
  21. package/dist/method/agents/ethan/agent.yaml +94 -0
  22. package/dist/method/agents/hugo/SKILL.md +52 -0
  23. package/dist/method/agents/hugo/agent.yaml +93 -0
  24. package/dist/method/agents/iris/SKILL.md +69 -0
  25. package/dist/method/agents/iris/agent.yaml +86 -0
  26. package/dist/method/agents/izzy/SKILL.md +137 -0
  27. package/dist/method/agents/izzy/agent.yaml +104 -0
  28. package/dist/method/agents/jade/SKILL.md +54 -0
  29. package/dist/method/agents/jade/agent.yaml +94 -0
  30. package/dist/method/agents/julien/SKILL.md +96 -0
  31. package/dist/method/agents/julien/agent.yaml +95 -0
  32. package/dist/method/agents/lina/SKILL.md +54 -0
  33. package/dist/method/agents/lina/agent.yaml +94 -0
  34. package/dist/method/agents/lou/SKILL.md +67 -0
  35. package/dist/method/agents/lou/agent.yaml +84 -0
  36. package/dist/method/agents/maya/SKILL.md +82 -0
  37. package/dist/method/agents/maya/agent.yaml +98 -0
  38. package/dist/method/agents/milo/SKILL.md +79 -0
  39. package/dist/method/agents/milo/agent.yaml +80 -0
  40. package/dist/method/agents/noah/SKILL.md +80 -0
  41. package/dist/method/agents/noah/agent.yaml +73 -0
  42. package/dist/method/agents/noah/references/conduct.md +98 -0
  43. package/dist/method/agents/noah/references/decisions.md +122 -0
  44. package/dist/method/agents/noah/references/environment.md +72 -0
  45. package/dist/method/agents/noah/references/facts.md +13 -0
  46. package/dist/method/agents/noah/references/journey.md +80 -0
  47. package/dist/method/agents/noah/references/team.md +195 -0
  48. package/dist/method/agents/omar/SKILL.md +92 -0
  49. package/dist/method/agents/omar/agent.yaml +86 -0
  50. package/dist/method/agents/quentin/SKILL.md +78 -0
  51. package/dist/method/agents/quentin/agent.yaml +82 -0
  52. package/dist/method/agents/sam/SKILL.md +54 -0
  53. package/dist/method/agents/sam/agent.yaml +94 -0
  54. package/dist/method/agents/stella/SKILL.md +80 -0
  55. package/dist/method/agents/stella/agent.yaml +89 -0
  56. package/dist/method/agents/tess/SKILL.md +64 -0
  57. package/dist/method/agents/tess/agent.yaml +94 -0
  58. package/dist/method/agents/zoe/SKILL.md +85 -0
  59. package/dist/method/agents/zoe/agent.yaml +91 -0
  60. package/dist/method/doctor.yaml +1029 -0
  61. package/dist/method/models.yaml +73 -0
  62. package/dist/method/skills/.gitkeep +0 -0
  63. package/dist/method/skills/acceptance-qa/SKILL.md +40 -0
  64. package/dist/method/skills/acceptance-qa/references/run.md +54 -0
  65. package/dist/method/skills/acceptance-qa/references/scenarios.md +32 -0
  66. package/dist/method/skills/acceptance-qa/references/verdicts.md +43 -0
  67. package/dist/method/skills/api-e2e-tests/SKILL.md +61 -0
  68. package/dist/method/skills/api-e2e-tests/references/ci.md +33 -0
  69. package/dist/method/skills/api-e2e-tests/references/frameworks.md +58 -0
  70. package/dist/method/skills/api-e2e-tests/references/generate.md +67 -0
  71. package/dist/method/skills/audit-pillars/SKILL.md +28 -0
  72. package/dist/method/skills/audit-pillars/references/accessibility.md +13 -0
  73. package/dist/method/skills/audit-pillars/references/architecture.md +13 -0
  74. package/dist/method/skills/audit-pillars/references/dependencies.md +13 -0
  75. package/dist/method/skills/audit-pillars/references/format.md +20 -0
  76. package/dist/method/skills/audit-pillars/references/interface.md +13 -0
  77. package/dist/method/skills/audit-pillars/references/method.md +33 -0
  78. package/dist/method/skills/audit-pillars/references/performance.md +17 -0
  79. package/dist/method/skills/audit-pillars/references/quality.md +11 -0
  80. package/dist/method/skills/audit-pillars/references/security.md +13 -0
  81. package/dist/method/skills/audit-pillars/references/tests.md +17 -0
  82. package/dist/method/skills/chain-stories/SKILL.md +30 -0
  83. package/dist/method/skills/chain-stories/references/attempts.md +19 -0
  84. package/dist/method/skills/chain-stories/references/stops.md +27 -0
  85. package/dist/method/skills/check-readiness/SKILL.md +34 -0
  86. package/dist/method/skills/check-readiness/references/judge.md +21 -0
  87. package/dist/method/skills/check-readiness/references/settle.md +17 -0
  88. package/dist/method/skills/check-requirements/SKILL.md +97 -0
  89. package/dist/method/skills/check-requirements/references/engine-proofs.md +43 -0
  90. package/dist/method/skills/check-requirements/references/proofs-and-gaps.md +45 -0
  91. package/dist/method/skills/correct-course/SKILL.md +15 -0
  92. package/dist/method/skills/correct-course/references/gestures.md +20 -0
  93. package/dist/method/skills/correct-course/references/starts.md +18 -0
  94. package/dist/method/skills/correct-course/references/steps.md +14 -0
  95. package/dist/method/skills/critique-deliverable/SKILL.md +25 -0
  96. package/dist/method/skills/critique-deliverable/references/assumption-audit.md +11 -0
  97. package/dist/method/skills/critique-deliverable/references/choose.md +27 -0
  98. package/dist/method/skills/critique-deliverable/references/compare-existing.md +13 -0
  99. package/dist/method/skills/critique-deliverable/references/devils-advocate.md +13 -0
  100. package/dist/method/skills/critique-deliverable/references/divergence.md +15 -0
  101. package/dist/method/skills/critique-deliverable/references/domain-expert.md +14 -0
  102. package/dist/method/skills/critique-deliverable/references/extreme-user.md +13 -0
  103. package/dist/method/skills/critique-deliverable/references/failure-modes.md +13 -0
  104. package/dist/method/skills/critique-deliverable/references/first-principles.md +12 -0
  105. package/dist/method/skills/critique-deliverable/references/format.md +25 -0
  106. package/dist/method/skills/critique-deliverable/references/gestures.md +24 -0
  107. package/dist/method/skills/critique-deliverable/references/inversion.md +13 -0
  108. package/dist/method/skills/critique-deliverable/references/judgment.md +14 -0
  109. package/dist/method/skills/critique-deliverable/references/pre-mortem.md +12 -0
  110. package/dist/method/skills/critique-deliverable/references/reconcile.md +15 -0
  111. package/dist/method/skills/critique-deliverable/references/red-team.md +12 -0
  112. package/dist/method/skills/critique-deliverable/references/reframe.md +12 -0
  113. package/dist/method/skills/critique-deliverable/references/second-order.md +12 -0
  114. package/dist/method/skills/critique-deliverable/references/socratic.md +15 -0
  115. package/dist/method/skills/critique-deliverable/references/steelman.md +13 -0
  116. package/dist/method/skills/critique-deliverable/references/subtraction.md +12 -0
  117. package/dist/method/skills/deep-research/SKILL.md +43 -0
  118. package/dist/method/skills/deep-research/assets/page-template.md +37 -0
  119. package/dist/method/skills/deep-research/references/candidates.md +29 -0
  120. package/dist/method/skills/deep-research/references/external.md +37 -0
  121. package/dist/method/skills/deep-research/references/page-format.md +51 -0
  122. package/dist/method/skills/deep-research/references/types.md +31 -0
  123. package/dist/method/skills/develop-story/SKILL.md +211 -0
  124. package/dist/method/skills/develop-story/evals/cases.yaml +45 -0
  125. package/dist/method/skills/develop-story/references/acceptance-tests.md +73 -0
  126. package/dist/method/skills/develop-story/references/self-check.md +46 -0
  127. package/dist/method/skills/diagnose-bug/SKILL.md +73 -0
  128. package/dist/method/skills/diagnose-bug/references/hypotheses.md +45 -0
  129. package/dist/method/skills/diagnose-bug/references/probes.md +40 -0
  130. package/dist/method/skills/generate-knowledge-base/SKILL.md +251 -0
  131. package/dist/method/skills/generate-knowledge-base/assets/guide-template.md +49 -0
  132. package/dist/method/skills/generate-knowledge-base/assets/index-template.md +58 -0
  133. package/dist/method/skills/generate-knowledge-base/assets/page-template.md +61 -0
  134. package/dist/method/skills/generate-knowledge-base/assets/release-notes-template.md +38 -0
  135. package/dist/method/skills/generate-knowledge-base/references/kb-checklist.md +49 -0
  136. package/dist/method/skills/generate-knowledge-base/references/living-docs.md +81 -0
  137. package/dist/method/skills/generate-knowledge-base/references/repository-scan.md +48 -0
  138. package/dist/method/skills/generate-knowledge-base/references/reuse-map.md +21 -0
  139. package/dist/method/skills/ideation/SKILL.md +44 -0
  140. package/dist/method/skills/ideation/assets/session-template.md +46 -0
  141. package/dist/method/skills/ideation/references/choose.md +21 -0
  142. package/dist/method/skills/ideation/references/close.md +17 -0
  143. package/dist/method/skills/ideation/references/converge.md +24 -0
  144. package/dist/method/skills/ideation/references/gestures.md +15 -0
  145. package/dist/method/skills/ideation/references/stances.md +21 -0
  146. package/dist/method/skills/ideation/references/techniques-borrowed.md +8 -0
  147. package/dist/method/skills/ideation/references/techniques-deep.md +12 -0
  148. package/dist/method/skills/ideation/references/techniques-frames.md +12 -0
  149. package/dist/method/skills/ideation/references/techniques-futures.md +8 -0
  150. package/dist/method/skills/ideation/references/techniques-limits.md +9 -0
  151. package/dist/method/skills/ideation/references/techniques-people.md +7 -0
  152. package/dist/method/skills/ideation/references/techniques-sparks.md +10 -0
  153. package/dist/method/skills/ideation/references/techniques-together.md +11 -0
  154. package/dist/method/skills/improve-code/SKILL.md +74 -0
  155. package/dist/method/skills/improve-code/references/axes.md +45 -0
  156. package/dist/method/skills/improve-session/SKILL.md +47 -0
  157. package/dist/method/skills/order-merges/SKILL.md +71 -0
  158. package/dist/method/skills/pitch/SKILL.md +40 -0
  159. package/dist/method/skills/pitch/assets/deck-template.md +31 -0
  160. package/dist/method/skills/pitch/assets/design-template.md +45 -0
  161. package/dist/method/skills/pitch/assets/narrative-template.md +40 -0
  162. package/dist/method/skills/pitch/references/deck-types.md +17 -0
  163. package/dist/method/skills/pitch/references/deck.md +24 -0
  164. package/dist/method/skills/pitch/references/design-implementation.md +25 -0
  165. package/dist/method/skills/pitch/references/design-methods.md +45 -0
  166. package/dist/method/skills/pitch/references/design-thinking.md +28 -0
  167. package/dist/method/skills/pitch/references/story-frameworks.md +39 -0
  168. package/dist/method/skills/pitch/references/story.md +22 -0
  169. package/dist/method/skills/plan-sprint/SKILL.md +162 -0
  170. package/dist/method/skills/quick-lane/SKILL.md +143 -0
  171. package/dist/method/skills/resolve-merge-conflict/SKILL.md +83 -0
  172. package/dist/method/skills/review-story/SKILL.md +96 -0
  173. package/dist/method/skills/review-story/evals/cases.yaml +59 -0
  174. package/dist/method/skills/review-story/references/amend-story.md +16 -0
  175. package/dist/method/skills/review-story/references/export.md +20 -0
  176. package/dist/method/skills/review-story/references/format.md +33 -0
  177. package/dist/method/skills/review-story/references/free-review.md +22 -0
  178. package/dist/method/skills/review-story/references/judge.md +44 -0
  179. package/dist/method/skills/review-story/references/lens-adversarial.md +15 -0
  180. package/dist/method/skills/review-story/references/lens-edge-cases.md +24 -0
  181. package/dist/method/skills/review-story/references/lens-prose.md +11 -0
  182. package/dist/method/skills/review-story/references/lens-relevance.md +13 -0
  183. package/dist/method/skills/review-story/references/lens-security.md +10 -0
  184. package/dist/method/skills/review-story/references/lens-structure.md +16 -0
  185. package/dist/method/skills/review-story/references/lens-verification-gaps.md +13 -0
  186. package/dist/method/skills/review-story/references/pass-assertions.md +17 -0
  187. package/dist/method/skills/review-story/references/pass-removals.md +13 -0
  188. package/dist/method/skills/review-tests/SKILL.md +32 -0
  189. package/dist/method/skills/review-tests/references/check.md +25 -0
  190. package/dist/method/skills/review-tests/references/grid.md +27 -0
  191. package/dist/method/skills/round-table/SKILL.md +31 -0
  192. package/dist/method/skills/round-table/evals/cases.yaml +27 -0
  193. package/dist/method/skills/round-table/references/cast.md +14 -0
  194. package/dist/method/skills/round-table/references/gestures.md +24 -0
  195. package/dist/method/skills/round-table/references/guests.md +17 -0
  196. package/dist/method/skills/round-table/references/independence.md +21 -0
  197. package/dist/method/skills/round-table/references/rooms.md +29 -0
  198. package/dist/method/skills/round-table/references/three-views.md +17 -0
  199. package/dist/method/skills/round-table/references/turns.md +19 -0
  200. package/dist/method/skills/run-retrospective/SKILL.md +201 -0
  201. package/dist/method/skills/security-review-architecture/SKILL.md +129 -0
  202. package/dist/method/skills/security-review-architecture/assets/architecture-review-template.md +47 -0
  203. package/dist/method/skills/security-review-architecture/references/spec-review.md +48 -0
  204. package/dist/method/skills/setup-ci/SKILL.md +121 -0
  205. package/dist/method/skills/setup-ci/assets/github-actions.yml +52 -0
  206. package/dist/method/skills/setup-ci/assets/gitlab-ci.yml +34 -0
  207. package/dist/method/skills/split-into-stories/SKILL.md +205 -0
  208. package/dist/method/skills/split-into-stories/assets/epic.md.tmpl +31 -0
  209. package/dist/method/skills/split-into-stories/assets/story.md.tmpl +36 -0
  210. package/dist/method/skills/strategy/SKILL.md +44 -0
  211. package/dist/method/skills/strategy/assets/innovation-template.md +60 -0
  212. package/dist/method/skills/strategy/assets/problem-template.md +54 -0
  213. package/dist/method/skills/strategy/references/costs.md +28 -0
  214. package/dist/method/skills/strategy/references/gestures.md +24 -0
  215. package/dist/method/skills/strategy/references/innovate-frameworks.md +48 -0
  216. package/dist/method/skills/strategy/references/innovate.md +40 -0
  217. package/dist/method/skills/strategy/references/solve-methods.md +45 -0
  218. package/dist/method/skills/strategy/references/solve.md +35 -0
  219. package/dist/method/skills/test-idea/SKILL.md +29 -0
  220. package/dist/method/skills/test-idea/assets/forge-template.md +27 -0
  221. package/dist/method/skills/test-idea/assets/prfaq-template.md +33 -0
  222. package/dist/method/skills/test-idea/references/bets.md +14 -0
  223. package/dist/method/skills/test-idea/references/concept.md +24 -0
  224. package/dist/method/skills/test-idea/references/faq.md +34 -0
  225. package/dist/method/skills/test-idea/references/forge.md +36 -0
  226. package/dist/method/skills/test-idea/references/personas.md +23 -0
  227. package/dist/method/skills/test-idea/references/prfaq.md +33 -0
  228. package/dist/method/skills/test-idea/references/verdict.md +26 -0
  229. package/dist/method/skills/workshop/SKILL.md +40 -0
  230. package/dist/method/skills/workshop/references/analyze.md +36 -0
  231. package/dist/method/skills/workshop/references/create.md +45 -0
  232. package/dist/method/skills/workshop/references/customize.md +45 -0
  233. package/dist/method/skills/workshop/references/evaluate.md +44 -0
  234. package/dist/method/skills/workshop/references/rules.md +35 -0
  235. package/dist/method/skills/write-architecture/SKILL.md +233 -0
  236. package/dist/method/skills/write-architecture/assets/architecture-template.md +110 -0
  237. package/dist/method/skills/write-architecture/references/guard.md +40 -0
  238. package/dist/method/skills/write-architecture/references/self-check.md +47 -0
  239. package/dist/method/skills/write-brand/SKILL.md +36 -0
  240. package/dist/method/skills/write-brand/assets/brand-template.md +59 -0
  241. package/dist/method/skills/write-brand/assets/identity-page.html +141 -0
  242. package/dist/method/skills/write-brand/assets/identity-template.md +132 -0
  243. package/dist/method/skills/write-brand/references/identity.md +38 -0
  244. package/dist/method/skills/write-brand/references/platform.md +29 -0
  245. package/dist/method/skills/write-brand/references/rules.md +43 -0
  246. package/dist/method/skills/write-brief/SKILL.md +171 -0
  247. package/dist/method/skills/write-brief/assets/brief-template.md +87 -0
  248. package/dist/method/skills/write-brief/assets/research-note-template.md +43 -0
  249. package/dist/method/skills/write-brief/references/brief-checklist.md +37 -0
  250. package/dist/method/skills/write-content/SKILL.md +233 -0
  251. package/dist/method/skills/write-content/assets/campaign-template.md +94 -0
  252. package/dist/method/skills/write-content/assets/content-template.md +76 -0
  253. package/dist/method/skills/write-content/references/content-checklist.md +67 -0
  254. package/dist/method/skills/write-positioning/SKILL.md +218 -0
  255. package/dist/method/skills/write-positioning/assets/page-template.md +85 -0
  256. package/dist/method/skills/write-positioning/assets/positioning-template.md +79 -0
  257. package/dist/method/skills/write-positioning/references/positioning-checklist.md +44 -0
  258. package/dist/method/skills/write-positioning/references/seo-checklist.md +62 -0
  259. package/dist/method/skills/write-prd/SKILL.md +204 -0
  260. package/dist/method/skills/write-prd/assets/prd-template.md +121 -0
  261. package/dist/method/skills/write-prd/evals/cases.yaml +46 -0
  262. package/dist/method/skills/write-prd/references/prd-checklist.md +68 -0
  263. package/dist/method/skills/write-sales/SKILL.md +236 -0
  264. package/dist/method/skills/write-sales/assets/offer-template.md +93 -0
  265. package/dist/method/skills/write-sales/assets/sequence-template.md +110 -0
  266. package/dist/method/skills/write-sales/references/before-you-send.md +54 -0
  267. package/dist/method/skills/write-sales/references/sales-checklist.md +71 -0
  268. package/dist/method/skills/write-spec/SKILL.md +25 -0
  269. package/dist/method/skills/write-spec/assets/spec-template.md +59 -0
  270. package/dist/method/skills/write-spec/references/spec-guide.md +47 -0
  271. package/dist/method/skills/write-ux-spec/SKILL.md +191 -0
  272. package/dist/method/skills/write-ux-spec/assets/mockup-page.html +36 -0
  273. package/dist/method/skills/write-ux-spec/assets/ux-template.md +206 -0
  274. package/dist/method/skills/write-ux-spec/references/accessibility-check.md +74 -0
  275. package/dist/method/skills/write-ux-spec/references/mockups.md +71 -0
  276. package/dist/method/skills/write-ux-spec/references/tokens-and-sketches.md +83 -0
  277. package/dist/method/skills/write-ux-spec/references/ux-checklist.md +74 -0
  278. package/dist/product-root.js +21527 -0
  279. package/dist/rolldown-runtime.js +38 -0
  280. package/dist/webauthn-verify.js +1 -0
  281. package/dist/webauthn-verify2.js +107 -0
  282. package/dist/webauthn.js +9798 -0
  283. package/package.json +56 -14
  284. package/bin.mjs +0 -228
@@ -0,0 +1,13 @@
1
+ # Pillar: security (Chloé's)
2
+
3
+ Walk the threat model (`.agentplugged/docs/threat-model.md`, when it exists) against the code: for
4
+ each entry point, who can reach it and what they can do. Read the authentication and access code,
5
+ the places where input enters, where secrets are read and where data leaves.
6
+
7
+ Look for: input used before it is checked; an access rule missing on one path of several;
8
+ credentials, keys or tokens in the code, a log, a document or the history (never copy one into
9
+ the report); data returned that the caller should not see; unsafe defaults; logs that hold
10
+ personal data.
11
+
12
+ Every finding names the asset at risk and the path to harm, in plain words; a worry without a
13
+ path is a `note`. Requirements: the security `ENF-n`.
@@ -0,0 +1,17 @@
1
+ # Pillar: tests
2
+
3
+ Read the test strategy (`.agentplugged/docs/test-strategy.md`, when it exists), then, for the most
4
+ important behaviours of the PRD, the test that proves each. `state.trace` lists which tests cite
5
+ which requirement (`path:line`).
6
+
7
+ Look for: a requirement no test cites; a test that cannot fail (no assertion, asserts what it just
8
+ set); a test that passes only most of the time; a level too low or too high for what it proves;
9
+ failure and boundary cases missing next to the happy path; slow tests nobody runs; tests that
10
+ depend on each other's order.
11
+
12
+ The quality of the tests themselves (graded, broken by the engine, holes tied to the requirements) is
13
+ the skill `review-tests`: point to it rather than redo it.
14
+
15
+ Requirements: the tests `ENF-n` (coverage, speed, stability). Prove it with `measure.run` when the
16
+ project declares its test command, else only from a test that cites the requirement and that its
17
+ own command ran green.
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: chain-stories
3
+ description: Chain the ready stories, stopping at every point that is the creator's. Run by Noah.
4
+ metadata:
5
+ agent: noah
6
+ phase: build
7
+ ---
8
+ # Chain the stories
9
+
10
+ On the creator's ask ("do the ready stories", "go on while I do something else"). The loop lasts
11
+ while this session is open: it never goes on without it. Work in the creator's language, under
12
+ your own id (`agent: noah`).
13
+
14
+ 1. **Turn.** `story.loop { agent: "noah" }`. Say its `line` in one sentence, nothing more.
15
+ 2. **`run`.** Hand the `step` to its `agent` as usual (`agent.delegate`, a sub-agent for a story).
16
+ The brief carries `until` (the criteria that must hold) and `tried` (approaches that already
17
+ failed: never again). The developer declares its approaches: `references/attempts.md`.
18
+ 3. **`stop`.** The loop is at a point that is the creator's, or at its own limit: present it as
19
+ the `reason` says, one decision at a time (`references/stops.md`). Their gesture ends the stop.
20
+ 4. **`done`.** Nothing is left: say what was done, in one line (`point` of the answer).
21
+ 5. **Again.** After each hand comes back, and after each gesture of the creator, take a new turn.
22
+
23
+ ## Never
24
+
25
+ - Follow "Rules for skills and agents" (reference `skill-rules`): ask once; a point the creator did not keep goes to `checkpoint.decide`; in French say « tu »; start with `memory.read`.
26
+ - Never answer a point, merge, spend, publish or run a command in the creator's place: a stop is
27
+ theirs, and the loop does not go round it.
28
+ - Never hand over twice in a row: you hand over, the agent works and calls no one (`ROLE_FORBIDDEN`).
29
+ - Never retry a story by yourself past its limit: the engine opens the point, the creator lifts it.
30
+ - Never rewrite the creator's words in a brief or a decision.
@@ -0,0 +1,19 @@
1
+ # Approaches and attempts (the developer's side)
2
+
3
+ Put this in the brief of the developer you hand a story to. The success condition is the story's
4
+ acceptance criteria (`until`): the tests of its criteria, run by the engine (`story.criterion`).
5
+ While one fails, the developer tries again, within a limit, and never repeats a failed approach.
6
+
7
+ - **Before an approach:** `story.loop { agent, story, note }`, one line saying what you will
8
+ try ("recompute the total at checkout"). The engine refuses an approach that is one already
9
+ tried and failed (`approach_failed`, with those approaches), a second one while the first is not
10
+ reported (`attempt_open`), and any once the limit is reached (`attempts_exhausted`).
11
+ - **After it:** `story.loop { agent, story, seen: "failed", note }` with the line that mattered
12
+ (the test, the message), or `seen: "green"` once every criterion holds: the engine checks
13
+ them itself and refuses (`CRITERIA_NOT_PROVEN`) while one does not.
14
+ - **The limit is three failed approaches.** The third opens a point for the creator in the same
15
+ write; stop there and say so in your result (`blocked`). They may allow three more; the approaches
16
+ that failed stay failed.
17
+ - An approach is a way of doing, not a try of the same way: another file, another algorithm,
18
+ another cut of the problem. A close rewording is the same approach, and the engine refuses it.
19
+ - Never declare an approach for a story you did not build, and never to hide a test.
@@ -0,0 +1,27 @@
1
+ # The stops of the loop
2
+
3
+ `story.loop` answers `stop` with a `reason` and a `subject` (a point `G-…`, a story or a step).
4
+ The engine wrote the stop in the journal once; the first `run` after the creator's gesture writes
5
+ the resumption. Present one stop at a time, then take a turn again.
6
+
7
+ | `reason` | What it is | What you do |
8
+ | --- | --- | --- |
9
+ | `validation` | A document, the end of a phase or a change of the memory waits | `state.next` `decisions`, the usual way |
10
+ | `decision` | A choice between options, or an action of theirs that is neither a command nor irreversible | The same, with the recommendation |
11
+ | `merge` | A story's merge waits (their settings keep it) | Present the point with its review stack and walkthrough |
12
+ | `spend` | A budget was exceeded | Present the point: raise, remove the ceiling, or stop |
13
+ | `irreversible` | A release, a publication or an action that cannot be undone | Present it alone, with what cannot be taken back |
14
+ | `command` | An installation or a command to accept | Present the exact command; never accept it for them |
15
+ | `gap` | A gap of a requirement to settle | Present the point, record it with `checkpoint.gap` |
16
+ | `creator_step` | A step that is theirs (a key to endorse, a method to sync) | Say it in one line and what to do |
17
+ | `attempts` | A story's approaches failed up to the limit | Say what was tried (`tried`), ask if they allow three more |
18
+ | `blocked` | A story is blocked | Read `state.get` for the story, bring the question |
19
+ | `outside` | The next step is not the stories' work (framing, design, delivery, launch) | Say which step, and that it is a conversation with them |
20
+
21
+ The points the creator did not keep are decided by their agent with a reason, as usual
22
+ (`point_decision`): they are not stops, except a spend, an irreversible action and a command, which
23
+ are always theirs. A point they kept waits beside work the engine calls independent of it (`waiting`
24
+ counts them): the loop goes on with that work and presents the point at its next stop. At the end, and at each stop, `point` tells in a line what
25
+ was done since they last answered: stories done, points decided by the agents, deferred items
26
+ still open. A deferred item that locks a story is treated by its owner (`deferred_work`), and the
27
+ creator decides what is theirs.
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: check-readiness
3
+ description: Check, before stories are cut and built, that the plan holds together. Run by Izzy.
4
+ metadata:
5
+ agent: izzy
6
+ phase: build
7
+ ---
8
+ # Check readiness
9
+
10
+ When `state.next` carries `readiness` (`check`), or the creator asks, check the plan as a whole
11
+ before the stories are cut (`stage: breakdown`) or built (`stage: build`). Read-only: you change no
12
+ document. Run it under your own id (`agent: izzy`), in the creator's language.
13
+
14
+ 1. `agent.status` (`working`). `review.ready` with `agent` alone: the engine's reading, nothing
15
+ written. `stack` holds what it computed (documents validated and unchanged, identifiers known,
16
+ requirements, stories, journeys and decisions traced both ways), the graver first; `documents`
17
+ what to read. Never judge again what the stack already says.
18
+ 2. Judge what only a reading tells, in a fresh context (a sub-agent when you have one): it reads the
19
+ documents, the epics, the stories the stack or a doubt points to, and `references/judge.md`.
20
+ 3. `review.ready` with `summary` and `findings` (possibly none): `references/judge.md` gives the
21
+ shape; fix what the engine says is missing. It answers `verdict` (`ready`, `reserves`,
22
+ `blocking`) and `stack`; a blocking one has opened a `decision` for the creator.
23
+ 4. `ready`: one line to the creator. Otherwise show `stack` as it is and take their gestures
24
+ (`references/settle.md`).
25
+ 5. `agent.status` (`idle`), hand back to Noah.
26
+
27
+ On the short path (`track: short`) the spec stands for the documents: read it and the stories, at
28
+ most 6 findings.
29
+
30
+ ## Never
31
+
32
+ - Follow "Rules for skills and agents" (reference `skill-rules`): ask once; a point the creator did not keep goes to `checkpoint.decide`; in French say « tu »; start with `memory.read`.
33
+ - Never rewrite the creator's text, never settle for them: no gesture without their words.
34
+ - Never call, direct or wait for another agent: hand back to Noah.
@@ -0,0 +1,21 @@
1
+ # What you judge, and the report
2
+
3
+ Three questions, nothing else:
4
+
5
+ 1. **Conflict**: do two documents say different things? (a requirement and a decision, a screen
6
+ and a rule, an epic and the PRD.)
7
+ 2. **Gap**: would a developer have to settle alone a point that no document writes down? (a choice of data, an interface, a rule, a screen state that no document settles.)
8
+ 3. **Shape** (a `gap`): does an epic deliver nothing a user sees (a layer), or lean on a later one?
9
+
10
+ A missing document matters only when the stories rely on what it would have said.
11
+
12
+ `review.ready` report:
13
+
14
+ - `summary`: what you read and your answer to question 2, one line.
15
+ - `findings`, at most 12 (6 on the short path), the weakest dropped; none is a valid answer:
16
+ - `severity`: `blocking` (built as written, the product breaks), `should_fix`, `minor`.
17
+ - `kind`: `conflict` or `gap`.
18
+ - `claim`: one line, checkable.
19
+ - `passages`: 1 to 3 of `<document>: <heading or EF-n, ENF-n, PU-n, AD-n>`; the document by its
20
+ id or file name. The first is the one to correct; a conflict names two documents. The engine checks them.
21
+ - `proposal`: one line, what to change and where (unless minor).
@@ -0,0 +1,17 @@
1
+ # The creator's gestures
2
+
3
+ Ask once, in the chat, with `stack` as the engine gave it: one gesture per finding.
4
+
5
+ - **correct** (`fix`): the author of the document corrects it.
6
+ - **accept** (`accept`): the creator keeps it as it is, with their own `reason`.
7
+
8
+ Beyond the twelve lines shown (`more`), settle these first, then check again. They may answer some now and the rest later. Settle: `review.ready` with `items` (`id` as in the
9
+ stack, `gesture`, `reason` for an accept) and `quote` (their words). The engine answers `fix`: for
10
+ each `owner`, the lines to hand over. The author changes the document and gets it validated again;
11
+ an `owner` of `creator` means the creator writes it: offer the lines, change nothing. After a
12
+ change, run the check again: a reading holds only for the documents it read (`judged: stale`).
13
+
14
+ A blocking verdict has opened a `decision`: correct first, or go on all the same. It is the
15
+ creator's alone; present it like any decision (`state.next` `decisions`).
16
+
17
+ The creator may skip the gate in a word (`step_skip` `readiness`): Noah records it, once.
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: check-requirements
3
+ description: Compare a started story's work with the requirements it cites, during the build and at the latest before the merge; report and verify each deviation. Run by the quality reviewer.
4
+ metadata:
5
+ agent: quentin
6
+ phase: build
7
+ ---
8
+ # Check a story against its requirements
9
+
10
+ A story cites requirements (`EF-n`, `ENF-n`, and the decisions `AD-n` it must follow). This skill
11
+ compares what was actually built with what those requirements say, and records every gap as a
12
+ deviation in the journal: the creator then sees it on the story, on its pull request and on the
13
+ requirement, and the story is not merged while one is open. It never fixes the code: the story's
14
+ developer does.
15
+
16
+ This skill belongs to the quality reviewer. Run it under your own id: `agent: <your id>` in every
17
+ MCP call. Work in the creator's language; keep identifiers (`1-2`, `EF-n`, `AD-n`, `V-…`) as they
18
+ are.
19
+
20
+ - **Input:** one started story of `.agentplugged/stories/`, its branch, and the documents it cites.
21
+ - **Output:** a deviation (`V-…`) per gap found, recorded with `story.deviation`; the deviations
22
+ you verified fixed, lifted with `story.lift_deviation`; and a structured result. No code change, no
23
+ push, no merge.
24
+
25
+ ## When
26
+
27
+ - **During the build:** when the story's developer reports progress on a criterion, or when the
28
+ creator asks, compare what is already committed.
29
+ - **Before the merge, at the latest:** once the story is in review and its pull request is open,
30
+ compare the whole branch. A story whose deviations are not all lifted is never merged.
31
+ - **After a fix:** when the developer moves the story back to review, compare again: lift what is
32
+ fixed, report what is still wrong or newly wrong.
33
+
34
+ ## Steps
35
+
36
+ 1. **Start.** Call `agent.status` (`working`, the story as `story`). Read `state.get`: the story
37
+ must be started (`stories.<id>.started`) and not done; its open deviations are in
38
+ `deviations.open`. Otherwise say so and go to step 8 with `partial`.
39
+ 2. **Read the story, and only what it cites.** The story file, entirely (its `requirements` and
40
+ its four sections). Each requirement it lists, in the PRD: the requirement itself and the
41
+ journey it belongs to. Each decision `AD-n` it cites, in the architecture. Never the rest of the
42
+ repository "to get a feel".
43
+ 3. **Read the trace.** Call `state.trace` with each requirement of the story: its status, its stories,
44
+ the tests that cite it (`path:line`), the pull requests of its stories and its deviations. A
45
+ test cites a requirement by writing its id in its name, in a comment or in its file's name:
46
+ `EF-18`, or `EF_18` where a name takes no dash, in a test file. `state.trace` reads the tests of
47
+ the working copy the MCP server runs in, usually the main checkout: the tests of a story not
48
+ merged yet live on its branch. Look for them there too, in the story's worktree
49
+ (`stories.<id>.started.worktree`) or with `git grep -n -i -E "(EF|ENF)[-_]18" <branch> --`,
50
+ before you conclude anything about them. When `tests.status` is not `read`, the trace says
51
+ nothing about the tests.
52
+ 4. **Read what was built.** In the story's worktree (`stories.<id>.started.worktree`), or from its
53
+ branch (`git diff <base>...<branch>`, `git log <branch>`): the code the story changed, and the
54
+ tests it added or changed. Note the commit you compare (`git rev-parse <branch>`).
55
+ 5. **Compare, requirement by requirement.** For each requirement the story cites:
56
+ - what it asks, as written (every condition, limit, error case and non-functional bound);
57
+ - what the code does, with the file and line that show it;
58
+ - which test proves it: a test that cites the requirement and checks that very behaviour. A
59
+ requirement of the story that no test on the story's branch cites is a deviation
60
+ (`no test cites EF-n`), unless the story says how it is checked otherwise; never conclude it
61
+ from the main checkout alone.
62
+ Then for each acceptance criterion: met, with its test, or not. A gap between the code and a
63
+ requirement or a criterion is a deviation; a matter of taste is not. When the requirement
64
+ itself is ambiguous, do not guess: say so in your result (an open question).
65
+ 6. **Report each deviation.** One `story.deviation` per distinct gap: the `story`, the
66
+ `requirements` it drifts from (only requirements the story cites), a one-line `summary` of what
67
+ differs, a `detail` with what the requirement says, what the code does and where (file and
68
+ line), and the `commit` you compared. The engine attaches it to the story's pull request when
69
+ there is one, and sends a story in review back to its developer. Never report the same gap
70
+ twice: read `deviations.open` first.
71
+ 7. **Verify the fixes.** For each open deviation you reported on the story: when the code and its
72
+ test now satisfy the requirement, call `story.lift_deviation` with the deviation and how it was
73
+ fixed (the commit). Lift only the deviations you reported, and only once verified; another
74
+ agent's deviation is its own to lift, and the creator may lift any, in the chat. A
75
+ deviation on a story you built yourself is never yours to lift (`DEVIATION_NOT_ALLOWED`); when
76
+ the agent that reported one is no longer active, ask the creator to lift it.
77
+ 8. **Report.** Call `story.result` with the story: `complete` when the comparison ran to the end
78
+ (whatever it found), `partial` when something kept you from it. A summary that lists, per
79
+ requirement, `ok` or the deviation ids; your assumptions, open questions and conflicts. Then
80
+ `agent.status` (`idle`) and `npx agentplugged next --json`, and tell the creator what it says.
81
+
82
+ ## Proofs before a release
83
+
84
+ The release point is refused while a non-functional requirement lacks a valid proof:
85
+ `measure.requirements` (the gaps), then the proof: `measure.run` for a declared command
86
+ (`references/engine-proofs.md`), else `measure.proof`; then the creator decides the rest, one gap
87
+ at a time (`references/proofs-and-gaps.md`).
88
+
89
+ ## Never
90
+
91
+ - 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`.
92
+ - Never change the code, the tests or the story: report, do not fix.
93
+ - Never report a deviation from a requirement the story does not cite (`not_linked`): a gap
94
+ outside the story is a note for the creator in your result.
95
+ - Never lift a deviation you did not verify, nor one you did not report.
96
+ - Never merge, never approve a story: the creator validates.
97
+ - Never call, direct or wait for another agent: hand back to Noah, who proposes what comes next; the creator decides (without Noah, the creator picks the next agent).
@@ -0,0 +1,43 @@
1
+ # Proofs the engine produces
2
+
3
+ The engine runs the commands the project declares, itself, and inscribes the proof: exit code,
4
+ duration, commit tested, whether the copy was clean, a short masked summary. Such a proof is marked
5
+ `engine`; one you report with `measure.proof` is `reported`. `measure.requirements` counts both
6
+ (`engine`, `reported`) once the engine has produced one. Never run a declared command yourself to
7
+ report its result.
8
+
9
+ **1. Declare.** Write or complete `.agentplugged/proofs.yaml` (a proposal: it runs nothing yet):
10
+
11
+ ```yaml
12
+ commands:
13
+ - name: tests # lower case, - or _
14
+ run: npm test # a program and its arguments, as in a terminal
15
+ timeout: 600 # seconds, 300 without, 3600 at most
16
+ proves: [ENF-2] # the requirements a passing run proves
17
+ - name: bench
18
+ run: node bench.mjs
19
+ cwd: perf # inside the project, `.` without
20
+ proves: [ENF-1]
21
+ measured_after: "p95_ms=" # a measure: the number after this text on the last line that has it
22
+ ```
23
+
24
+ Use the project's own commands, never a tool you assume. A line that only a shell reads (a pipe,
25
+ `&&`, `$VAR`) goes through the shell: prefer a plain line or a script of the project.
26
+
27
+ **2. Ask the creator once.** `guard.creator_action` with `{kind: proof_commands}`: the engine reads
28
+ the file and asks for every line that is new or modified. Show `preview` to the creator as it is,
29
+ line by line (name, exact line, folder, limit, requirements); never reword it. `later` lines did not
30
+ fit: ask again after the answer. A line they refuse stays refused: name it (`commands: [name]`) only
31
+ when they ask again. Changing a line, its folder, its limit or what it proves asks again. To demand
32
+ at the release that proofs be the engine's own: `{kind: proof_commands, require: engine}` (`any`
33
+ takes it back).
34
+
35
+ **3. Run.** `measure.run` with `source` = the command's name. You get `ok`, `seconds`, `proved`,
36
+ `failed`, `skipped` (`id:why`: a review comes from the audit, a CI from the CI, a test proof needs a
37
+ test that cites the requirement, a measure needs a budget), `unclean` (changes not committed: commit,
38
+ then run again before a release) and, on a failure, `lines`; the whole output is in `log`, a local
39
+ file. A failure, a timeout or a command that never started is a failed proof: a gap, never a proof.
40
+ Do not retry in a loop: fix the cause, or ask the creator.
41
+
42
+ Refusals say what to do: `not_accepted` (step 2), `refused_by_the_creator` (their word stands),
43
+ `nothing_to_prove` (the command proves nothing the engine can prove by running it).
@@ -0,0 +1,45 @@
1
+ # Proofs and gaps of the non-functional requirements
2
+
3
+ **What counts as a proof** (`measure.proof`: `requirement`, `source`, and `passed` or `measured`).
4
+ The register says which kind each requirement expects (`id:why:proof` in its gaps); you give no
5
+ kind. A command the project declares is run by the engine itself (`references/engine-proofs.md`):
6
+ prefer it. Otherwise what you report is the result of the project's own command, that you ran,
7
+ marked `reported`. Never record a proof you did not get.
8
+
9
+ - `test`: the source is `path:line` of a test that cites the requirement (its id in the name or a
10
+ comment); the engine looks for it. `passed` is what the project's own test command said.
11
+ - `ci`: the source is the id of a story (`1-2`) whose CI the engine read; it decides from that read
12
+ (green or not), you give no `passed`. When stories cite the requirement, it is one of them.
13
+ - `analysis`: a scan or an analysis; the source is the command the project declares for this
14
+ requirement. `passed` is its result.
15
+ - `measure`: the source is the declared command; give `measured` in the unit of the requirement's
16
+ budget (`≤ 300 ms` takes milliseconds). The engine compares and decides; you never say pass.
17
+ - `review`: never typed in: it comes from the audit (skill `audit-pillars`, `verified`), for the
18
+ requirements that expect a review.
19
+
20
+ A requirement whose wording is unclear (two budgets in one sentence, `1,000` that could be one or a
21
+ thousand) is a finding for the PRD's author, not a proof to invent: the register then expects a
22
+ test or an analysis. A proof stays valid while the requirement says the same and no story that
23
+ covers it is delivered after it (all stories, for a requirement none cites); then run it again.
24
+
25
+ **When the release point is refused** (`RELEASE_NOT_READY`, the requirements `id:why`). The end of
26
+ the delivery phase is held the same way.
27
+
28
+ 1. Run `measure.requirements` again first: the register follows the PRD and the architecture as
29
+ they are now, and tells what it no longer holds (`removed`).
30
+ 2. Get each missing proof: `measure.run` for a declared command, else run the project's command
31
+ and record the real result.
32
+ 3. For each requirement still failing or without proof, open one `decision` point with
33
+ `checkpoint.open`, its title naming the requirement ("Gap on ENF-3"), two lines on what is
34
+ missing and what it costs, and exactly the options `fix` (a story is proposed; the release
35
+ waits), `accept` (the creator takes the risk and says why), `defer` (to a version they name).
36
+ Recommend `fix`. A point serves one gap and is used once; a failure recorded after it needs a
37
+ new point.
38
+ 4. Ask the creator through the chat, one point at a time. Once they chose, relay it with
39
+ `checkpoint.gap`: the `requirement`, the `option`, the point's id and their reason in their own
40
+ words (for `defer`, the version they named).
41
+ 5. When none is left, the release point can be approved (by the creator, or by the agent they left
42
+ this kind of point to): the engine refuses it otherwise, and says which.
43
+
44
+ Never accept, defer or fix a gap on the creator's behalf, and never reword their reason. A gap the
45
+ creator accepted stays accepted until the requirement changes; a new failing proof reopens it.
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: correct-course
3
+ description: Compute what a change of mind touches; the creator settles each element with one gesture.
4
+ metadata:
5
+ agent: maya
6
+ phase: planning
7
+ ---
8
+ # Correct the course
9
+
10
+ The creator changes their mind: `references/steps.md`.
11
+
12
+ ## Never
13
+
14
+ - Follow "Rules for skills and agents" (reference `skill-rules`): ask once; a point the creator did not keep goes to `checkpoint.decide`; in French say « tu »; start with `memory.read`.
15
+ - Call, direct or wait for another agent: hand back to Noah.
@@ -0,0 +1,20 @@
1
+ # The creator's gestures on the stack
2
+
3
+ `stack` is sorted by the engine, the most structuring first (decisions, requirements, passages,
4
+ documents, stories under way then to do then done, criteria, hypotheses, pages). Ask once, in the
5
+ chat, with the lines as they are; one gesture each. They may answer some now and the rest later:
6
+ `step: show` with `item` (C-…) says what is left and what is still incoherent.
7
+
8
+ - **update**: it changes; its author does it (`handoff` says who). `gesture: update`.
9
+ - **retire**: for a requirement or a decision that goes: the identifier stays, marked retired
10
+ (`(retired)` before its text), never deleted, never reused. `gesture: retire`.
11
+ - **keep**: it stays as it is, with their reason. `gesture: keep`, `reason`.
12
+
13
+ `step: decide` with `item`, `items` (`n`, `gesture`, `reason` for a keep) and `quote` (their words).
14
+ A story under way is held until its decision is taken: tell its developer (`blocked`).
15
+
16
+ Close with `step: close`: the engine finds every element marked update changed, every
17
+ retirement marked, no story citing a retired requirement, no
18
+ proof still valid for a requirement whose text changed (Quentin brings the register of proofs up
19
+ to date: hand it to Noah). While something is wrong it answers `problems` and writes nothing; an
20
+ update that is not needed becomes a keep, with a reason. Once whole, the course is closed.
@@ -0,0 +1,18 @@
1
+ # Naming what a change touches
2
+
3
+ `starts`: 1 to 8 entries, each one of these forms. The engine refuses one it does not find (`EF-9:
4
+ not found`) and writes nothing.
5
+
6
+ - A requirement or a decision: `EF-3`, `ENF-2`, `AD-4`, `PU-1`, `MS-2`.
7
+ - A story: `4-3`. A criterion of a story: `4-3#2` (its number in the list).
8
+ - A passage of a document: `prd#Public cible`, `ux#Parcours d'achat`, `architecture#Données`
9
+ (`brief`, `prd`, `ux`, `architecture`, `spec`; a heading of the document, or an identifier it
10
+ holds). The identifiers a passage names are followed too.
11
+
12
+ Name the least that says the change: the engine follows the trace from there (stories that cite an
13
+ identifier, tests, proofs, hypotheses, documents and pages of the base). A change that touches
14
+ several things names several starts, one call. A new requirement is not a start: write it, then
15
+ change course on what it replaces.
16
+
17
+ `summary` is the change in one line, in the creator's terms; `quote` is their sentence as they
18
+ said it. One course at a time: finish the one that is open (`step: show`) before another.
@@ -0,0 +1,14 @@
1
+ # Correcting the course, step by step
2
+
3
+ 1. `agent.status` (`working`), under your own id. Say the change in one line and name what it touches
4
+ (`starts.md`); read the document or `state.trace` before naming, never guess.
5
+ 2. `plan.course` `step: open` (`summary`, `starts`, their words in `quote`). Show `stack` as it
6
+ is, then `blocked` (their developers are told, they do not merge) and `proofs`.
7
+ 3. One gesture per element, in their words (`gestures.md`): `step: decide`.
8
+ 4. Do your own updates (PRD: `write-prd` « Identifiers » and « Decisions »; then
9
+ `npx agentplugged docs check`; a `decision` checkpoint for each ambiguity the change brings);
10
+ hand the others over with `handoff`.
11
+ 5. `step: close`: fix what `problems` says, close again. `agent.status` (`idle`), hand back to Noah.
12
+
13
+ Never decide a gesture for the creator, rewrite their text without their gesture, renumber an
14
+ identifier or delete one: retire it.
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: critique-deliverable
3
+ description: Attack a brief, PRD, UX spec or architecture with a chosen method before building on it; submit one closed report; the creator sorts the objections. Run by Quentin.
4
+ metadata:
5
+ agent: quentin
6
+ phase: planning
7
+ ---
8
+ # Critique a deliverable
9
+
10
+ On the creator's ask, or when `state.next` carries `critique`, attack one document of
11
+ `.agentplugged/docs/` (`brief`, `prd`, `ux`, `architecture`) before anyone builds on it. Read-only.
12
+ Run it under your own id (`agent: <your id>`), in the creator's language.
13
+
14
+ 1. `agent.status` (`working`). Method: the creator's, else `references/choose.md`, in one line.
15
+ 2. Critique in a fresh context (a sub-agent when you have one): it reads the document,
16
+ `references/format.md` and the method's file here, nothing else (two files if blended), never the author's reasoning.
17
+ 3. `review.critique` (report: `references/format.md`); fix what the engine says is missing. Show `stack` as it is.
18
+ 4. Gestures, settling and hypotheses: `references/gestures.md`.
19
+ 5. `agent.status` (`idle`), hand back to Noah.
20
+
21
+ ## Never
22
+
23
+ - Follow "Rules for skills and agents" (reference `skill-rules`): ask once; a point the creator did not keep goes to `checkpoint.decide`; in French say « tu »; start with `memory.read`.
24
+ - Never rewrite the creator's text, never settle or close for them: no gesture without their words.
25
+ - Never call, direct or wait for another agent: hand back to Noah.
@@ -0,0 +1,11 @@
1
+ # Assumption audit
2
+
3
+ List what the document takes for true without having checked it, and test the weakest.
4
+
5
+ 1. Extract the assumptions, stated (`[assumption]`, "we expect") or silent (about users, volumes,
6
+ platforms, partners, the team).
7
+ 2. Rank them by how likely each is to be wrong and by what it costs the product if it is.
8
+ 3. Take the few at the top. For each, say what the document would have to change if it fell.
9
+
10
+ Each is an objection: the assumption is the `claim`, the passage that rests on it is the
11
+ `passage`, and the cheapest check (a question, a number, a prototype) is the `proof`.
@@ -0,0 +1,27 @@
1
+ # Choosing a method
2
+
3
+ The creator may name one, or two to blend. Otherwise choose by what the document is and what it
4
+ risks, and say why in one line. Identifiers are those of the report; the file is
5
+ `references/<identifier with - for _>.md`.
6
+
7
+ - **brief**: `socratic` (premises nobody questioned); `reframe` if it may answer the wrong question.
8
+ - **prd**: `pre_mortem` (what it forgot); `subtraction` if long; `extreme_user` if users are varied.
9
+ - **ux**: `devils_advocate` (defended by whoever drew it); `extreme_user`; `subtraction` for excess.
10
+ - **architecture**: `divergence` (two parts true to each decision that still do not fit);
11
+ `red_team` (adversary and load); `failure_modes` (each part failing); `compare_existing` when
12
+ code already exists.
13
+ - One big assumption: `first_principles`, or `assumption_audit` for several.
14
+ - A hard-to-reverse decision: `inversion`, `second_order` (what it causes next), `steelman` (the
15
+ best case for the option dropped).
16
+ - Whether a PRD or a UX specification is good as a whole (thesis, theater, trade-offs, excess):
17
+ `judgment`, whose grid is in the checklist of the skill that wrote it.
18
+ - A regulated or specialised field: `domain_expert`.
19
+
20
+ **Blend**: two methods in one critique when the risks differ (`divergence` with `failure_modes`);
21
+ `lenses` holds both, the sub-agent reads both files, the report stays one and holds the 12
22
+ strongest objections. Never three. `personas` and `reconcile` stand alone.
23
+
24
+ **Reconcile** (`reconcile`): before a PRD, UX or architecture is validated, not instead of a
25
+ critique; at most five findings, see `references/reconcile.md`.
26
+
27
+ A third method, or another with a different aim, is a new critique.
@@ -0,0 +1,13 @@
1
+ # Compare with the existing
2
+
3
+ Set the document beside what already exists, and see where it re-invents, contradicts or
4
+ forgets.
5
+
6
+ 1. Gather what exists: the code and documents in the repository, the products the users
7
+ already use, the creator's earlier decisions. Read only what the document touches.
8
+ 2. For each major point, ask: does something here already do this, and does the document agree
9
+ with it (names, limits, behaviour, constraints)?
10
+ 3. Keep the contradictions, the duplicates, and the existing things the document would break.
11
+
12
+ Each is an objection: the mismatch is the `claim`, the passage is the `passage`, and the place
13
+ where the existing thing can be seen (a file, a screen, a product) is the `proof`.
@@ -0,0 +1,13 @@
1
+ # Advocate against
2
+
3
+ Defend the opposite choice with conviction, as someone who would lose if the document were
4
+ followed and who is intelligent and fair.
5
+
6
+ 1. List the document's main choices (what is in, what is out, how it works, in what order).
7
+ 2. For each, build the strongest case for the other choice: who it serves better, what it costs
8
+ less, what the document's choice gives up.
9
+ 3. Keep the cases the document does not answer. A choice that survives its best opponent is
10
+ not an objection.
11
+
12
+ Each unanswered case is an objection: the case is the `claim`, the choice it contests is the
13
+ `passage`, and what would show which choice is right is the `proof`.
@@ -0,0 +1,15 @@
1
+ # Divergence
2
+
3
+ Two teams build two parts of the product, each obeying every decision of the document exactly
4
+ as written. Find where the parts still do not fit.
5
+
6
+ 1. Pick two parts that must work together (two modules, a client and a server, two screens that
7
+ share data).
8
+ 2. Build each in your head, applying each decision as written and nothing else. Wherever a choice
9
+ is left open (a format, an owner, a name, an error, an order), the two builders choose
10
+ differently.
11
+ 3. Keep the divergences that would break the whole: a seam nobody owns, a rule that says what to
12
+ do but not how far, a decision left to "later" that both parts depend on.
13
+
14
+ Each is an objection: the divergence is the `claim`, the decision (`AD-n`) that should have
15
+ closed it is the `passage`, and the integration test that would fail is the `proof`.
@@ -0,0 +1,14 @@
1
+ # Domain expert
2
+
3
+ Read the document as a veteran of the field it enters would, one who has seen similar products
4
+ fail for reasons outsiders miss.
5
+
6
+ 1. Name the field in one line (health data, logistics, teaching, payments, games…) and the
7
+ rules, habits and traps of it that every practitioner knows.
8
+ 2. Walk the document and mark what that person would find naive, impossible, illegal, or already
9
+ solved a known way.
10
+ 3. Keep what is wrong for the field, not what is merely unusual. Say what the practitioner
11
+ would do.
12
+
13
+ Each is an objection: what the practitioner would say is the `claim`, the passage is the
14
+ `passage`, and a real practitioner's answer or a standard of the field is the `proof`.
@@ -0,0 +1,13 @@
1
+ # Extreme user
2
+
3
+ Test the document against the users at its edges, since the middle is what it was written for.
4
+
5
+ 1. Choose three or four: the most expert, the newest, the one with the most data, the one with
6
+ the least time or the worst connection, the one who does not read, the one who abuses.
7
+ 2. For each, walk their journey through the document and mark where it stops, wastes their
8
+ time, locks them out or breaks.
9
+ 3. Keep the gaps a real share of users will meet. Drop the rare ones the product may ignore, and
10
+ say so.
11
+
12
+ Each is an objection: what happens to that user is the `claim`, the requirement or flow they
13
+ cross is the `passage`, and a session with that kind of user is the `proof`.
@@ -0,0 +1,13 @@
1
+ # Failure modes
2
+
3
+ Go through the parts one by one and ask how each one fails, what the user then sees, and what
4
+ catches it.
5
+
6
+ 1. List the parts the document relies on (components, steps of a flow, outside services,
7
+ data).
8
+ 2. For each, write how it can fail: absent, slow, wrong, duplicated, out of order, refused.
9
+ 3. Check what the document says happens then. Keep the failures with no detection, no recovery or
10
+ a silent loss. Order by the damage to the user.
11
+
12
+ Each is an objection: the failure is the `claim`, the part is the `passage`, and the test that
13
+ provokes the failure and shows the outcome is the `proof`.
@@ -0,0 +1,12 @@
1
+ # First principles
2
+
3
+ Strip the document to what must be true, then see what it added by habit.
4
+
5
+ 1. State the need in one sentence, as the person who has it would, with no solution in it.
6
+ 2. List what is physically, legally or logically fixed, and what is only convention or copied
7
+ from how others do it.
8
+ 3. Rebuild the simplest answer from the fixed things alone. Compare with the document: what does
9
+ it carry that the need does not require, and what does the need require that it lacks?
10
+
11
+ Each gap is an objection: the extra weight or the missing piece is the `claim`, where the
12
+ document carries or omits it is the `passage`, and the simplest test that settles it is the `proof`.