ll-skills 2.0.2 → 3.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 (115) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +42 -20
  3. package/agents/ll-executor.md +1 -0
  4. package/assets/preamble.md +29 -35
  5. package/bin/install.js +4 -1
  6. package/hooks/ll-precompact.js +29 -1
  7. package/hooks/ll-skills-check-update.js +6 -6
  8. package/hooks/ll-state.js +30 -2
  9. package/package.json +3 -2
  10. package/scripts/evals/README.md +57 -0
  11. package/scripts/evals/cases/auto-dry-run/assert.sh +35 -0
  12. package/scripts/evals/cases/auto-dry-run/case.json +8 -0
  13. package/scripts/evals/cases/auto-dry-run/prompt.txt +1 -0
  14. package/scripts/evals/cases/auto-empty-repo/assert.sh +25 -0
  15. package/scripts/evals/cases/auto-empty-repo/case.json +8 -0
  16. package/scripts/evals/cases/auto-empty-repo/fixture/.gitkeep +0 -0
  17. package/scripts/evals/cases/auto-empty-repo/prompt.txt +1 -0
  18. package/scripts/evals/cases/decide-final-round/assert.sh +32 -0
  19. package/scripts/evals/cases/decide-final-round/case.json +8 -0
  20. package/scripts/evals/cases/decide-final-round/fixture/README.md +3 -0
  21. package/scripts/evals/cases/decide-final-round/prompt.txt +1 -0
  22. package/scripts/evals/cases/executor-block/assert.sh +33 -0
  23. package/scripts/evals/cases/executor-block/case.json +8 -0
  24. package/scripts/evals/cases/executor-block/prompt.txt +14 -0
  25. package/scripts/evals/cases/goal-autonomous/assert.sh +35 -0
  26. package/scripts/evals/cases/goal-autonomous/case.json +8 -0
  27. package/scripts/evals/cases/goal-autonomous/fixture/PLAN.md +42 -0
  28. package/scripts/evals/cases/goal-autonomous/fixture/PROGRESS.md +20 -0
  29. package/scripts/evals/cases/goal-autonomous/fixture/ROADMAP.md +29 -0
  30. package/scripts/evals/cases/goal-autonomous/fixture/package.json +8 -0
  31. package/scripts/evals/cases/goal-autonomous/fixture/src/money.js +6 -0
  32. package/scripts/evals/cases/goal-autonomous/fixture/test/reconcile.test.js +8 -0
  33. package/scripts/evals/cases/goal-autonomous/prompt.txt +1 -0
  34. package/scripts/evals/cases/implement-review-gate/assert.sh +35 -0
  35. package/scripts/evals/cases/implement-review-gate/case.json +8 -0
  36. package/scripts/evals/cases/implement-review-gate/prompt.txt +1 -0
  37. package/scripts/evals/cases/implement-stops-at-next/assert.sh +39 -0
  38. package/scripts/evals/cases/implement-stops-at-next/case.json +9 -0
  39. package/scripts/evals/cases/implement-stops-at-next/prompt.txt +1 -0
  40. package/scripts/evals/cases/preamble-no-ritual/assert.sh +17 -0
  41. package/scripts/evals/cases/preamble-no-ritual/case.json +8 -0
  42. package/scripts/evals/cases/preamble-no-ritual/fixture/README.md +3 -0
  43. package/scripts/evals/cases/preamble-no-ritual/fixture/src/a.ts +3 -0
  44. package/scripts/evals/cases/preamble-no-ritual/prompt.txt +1 -0
  45. package/scripts/evals/cases/router-execute/assert.sh +12 -0
  46. package/scripts/evals/cases/router-execute/case.json +8 -0
  47. package/scripts/evals/cases/router-execute/prompt.txt +1 -0
  48. package/scripts/evals/cases/router-research/assert.sh +11 -0
  49. package/scripts/evals/cases/router-research/case.json +8 -0
  50. package/scripts/evals/cases/router-research/fixture/README.md +3 -0
  51. package/scripts/evals/cases/router-research/prompt.txt +1 -0
  52. package/scripts/evals/cases/router-small/assert.sh +21 -0
  53. package/scripts/evals/cases/router-small/case.json +8 -0
  54. package/scripts/evals/cases/router-small/fixture/README.md +17 -0
  55. package/scripts/evals/cases/router-small/prompt.txt +1 -0
  56. package/scripts/evals/cases/scout-no-plan/assert.sh +41 -0
  57. package/scripts/evals/cases/scout-no-plan/case.json +8 -0
  58. package/scripts/evals/cases/scout-no-plan/prompt.txt +8 -0
  59. package/scripts/evals/cases/verifier-weakened-test/assert.sh +19 -0
  60. package/scripts/evals/cases/verifier-weakened-test/case.json +8 -0
  61. package/scripts/evals/cases/verifier-weakened-test/prompt.txt +13 -0
  62. package/scripts/evals/cases/verifier-weakened-test/setup.sh +19 -0
  63. package/scripts/evals/fixtures/manual-contract/out.json +29 -0
  64. package/scripts/evals/fixtures/manual-contract/out.txt +5 -0
  65. package/scripts/evals/fixtures/manual-contract/with-skill.json +46 -0
  66. package/scripts/evals/lib/assert.sh +107 -0
  67. package/scripts/evals/lib/extract.js +73 -0
  68. package/scripts/evals/run.sh +369 -0
  69. package/scripts/fixtures/auto-closed/PLAN.md +5 -0
  70. package/scripts/fixtures/auto-closed/PROGRESS.md +20 -0
  71. package/scripts/fixtures/auto-closed/ROADMAP.md +6 -0
  72. package/scripts/fixtures/auto-closed/docs/DELIVERY.md +3 -0
  73. package/scripts/fixtures/auto-decisions/decisions/DEC-0001-taken-alone.md +13 -0
  74. package/scripts/fixtures/auto-decisions/decisions/DEC-0002-owner.md +13 -0
  75. package/scripts/fixtures/auto-noroadmap/PLAN.md +20 -0
  76. package/scripts/fixtures/auto-noroadmap/PROGRESS.md +11 -0
  77. package/scripts/fixtures/auto-verify-next/PLAN.md +5 -0
  78. package/scripts/fixtures/auto-verify-next/PROGRESS.md +18 -0
  79. package/scripts/fixtures/auto-verify-next/ROADMAP.md +5 -0
  80. package/scripts/fixtures/auto-verify-next/phases/01/PLAN.md +6 -0
  81. package/scripts/fixtures/evals-auto/auto-dry-run/pass.txt +18 -0
  82. package/scripts/fixtures/evals-auto/auto-empty-repo/pass.txt +2 -0
  83. package/scripts/fixtures/evals-auto/goal-autonomous/pass.txt +29 -0
  84. package/scripts/fixtures/lint-bad/folded-description/SKILL.md +13 -0
  85. package/scripts/fixtures/lint-bad/model-invocation-false/SKILL.md +10 -0
  86. package/scripts/fixtures/next-bad/skills/ll-bad/SKILL.md +30 -0
  87. package/scripts/fixtures/next-good/skills/ll-good/SKILL.md +26 -0
  88. package/scripts/fixtures/project/PROGRESS.md +4 -0
  89. package/scripts/lint-contract.cjs +495 -0
  90. package/scripts/lint-prompts.sh +396 -0
  91. package/scripts/ll-tools.js +465 -447
  92. package/scripts/smoke-test.sh +380 -1
  93. package/skills/ll-auto/SKILL.md +74 -0
  94. package/skills/ll-auto/references/run.md +75 -0
  95. package/skills/ll-auto/references/stages.md +66 -0
  96. package/skills/ll-auto/scripts/ll-auto.js +345 -0
  97. package/skills/ll-brainstorm/SKILL.md +5 -4
  98. package/skills/ll-brainstorm/references/decision-policy.md +3 -0
  99. package/skills/ll-close/SKILL.md +5 -5
  100. package/skills/ll-close/references/delivery.md +3 -1
  101. package/skills/ll-decide/SKILL.md +13 -11
  102. package/skills/ll-decide/references/decision-policy.md +3 -0
  103. package/skills/ll-decide/references/interview.md +10 -0
  104. package/skills/ll-decide/references/plan-skeleton.md +14 -14
  105. package/skills/ll-decide/references/premise-gate.md +7 -0
  106. package/skills/ll-goal/SKILL.md +22 -4
  107. package/skills/ll-goal/references/goal-template.md +57 -0
  108. package/skills/ll-implement/SKILL.md +4 -2
  109. package/skills/ll-implement/references/decision-policy.md +3 -0
  110. package/skills/ll-oncall/SKILL.md +3 -2
  111. package/skills/ll-refine/SKILL.md +3 -2
  112. package/skills/ll-research/SKILL.md +3 -2
  113. package/skills/ll-resume/SKILL.md +4 -3
  114. package/skills/ll-update/SKILL.md +6 -1
  115. package/skills/ll-verify/SKILL.md +2 -1
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: ll-decide
3
- description: Turns a request into a contract that survives without the owner — project mode runs a five-question premise gate, a "back from the future" premortem with clean-context narrators, a disarm pass, a decision room (docs/decide/OPTIONS.html) and an interview in batteries, then writes PLAN.md §0–§11, ROADMAP.md, decisions/ and an empty PROGRESS.md; feedback mode ingests external material (docx/pdf/xlsx/images) forensically, anchors every item in the code, checks its claims, triages by impact, arbitrates competing copy blind and writes docs/review-<date>.md plus the team's .xlsx. Use when the request is "escreva o plano", "vamos desenhar", "segunda tentativa", a new folder, a LARGE-regime request, or in English "write the plan", "let's design it" (project); or pasted .docx/.pdf/.xlsx/image paths with "analise a revisão", "processa o feedback", "vê o que o time sugeriu", "process the review" (feedback). For an open-ended idea start with `ll-brainstorm`; for research first, `ll-research`.
4
- argument-hint: "[project | feedback] [--measure]"
3
+ description: Turns a request into a contract that survives without the owner, writing PLAN.md, ROADMAP.md, decisions/ and an empty PROGRESS.md in project mode, or a dated review file from external feedback in feedback mode.
4
+ argument-hint: "[project | feedback] [--measure] [--no-talk]"
5
+ disable-model-invocation: true
5
6
  ---
6
7
 
7
8
  # Decide
@@ -31,7 +32,7 @@ Read, never rewritten: `docs/decide/OPENING.md` (from `ll-brainstorm` — everyt
31
32
  ## Flow — project
32
33
 
33
34
  ### 0. Mode, inputs and existing state
34
- Read the argument: `--measure` runs the disarm tests and may spend; without it the exercise is design-only (paper). When the request itself says which, that wins; otherwise announce the mode in one line — the owner overrules by replying. Read the project CLAUDE.md, `docs/decide/OPENING.md`, research summaries, and any record of a previous attempt ("segunda tentativa", a retrospective): the previous failure is a source in PLAN §11 with its dated reason, and its lessons enter §2/§4 with that source.
35
+ Read the argument: `--measure` runs the disarm tests and may spend; without it the exercise is design-only (paper). `--no-talk` sends no question in steps 1, 5 and 6: each band-2/3 item takes its recommended option at once as `ASM-n [decided by absence — revisable]`, and each band-1 item becomes a `WAITING` decision file instead of a question. When the request itself says which, that wins; otherwise announce the mode in one line — the owner overrules by replying. Read the project CLAUDE.md, `docs/decide/OPENING.md`, research summaries, and any record of a previous attempt ("segunda tentativa", a retrospective): the previous failure is a source in PLAN §11 with its dated reason, and its lessons enter §2/§4 with that source.
35
36
 
36
37
  Existing state at the root. `PLAN.md` already there from an earlier round, and that round is closed (its `PROGRESS.md` carries the `ll-close` epilogue, or the owner says it is closed) → `git mv` of what exists among `PLAN.md ROADMAP.md PROGRESS.md phases/ docs/decide/` into `docs/history/<round-slug>/` in one commit `docs(history): archive <round>`; `decisions/` and `BACKLOG.md` stay where they are and the DEC ids continue from the highest. Round not closed → stop and ask (band 1): close it with `ll-close`, or continue it. The new set is then written at the root, never under `docs/<project>/`.
37
38
 
@@ -50,7 +51,7 @@ Read every reference the request names, before the gate:
50
51
  ### 1. Premise gate (blocking)
51
52
  Five questions in one block, before any subagent: the number that decides success and what counts as FAILURE; the deliverable in the client's format; the source of truth for the data; the house pattern that applies; the constraint being invented out of caution that is not the owner's rule. The tool takes four per call: questions 1–4 in one call, the fifth right after, nothing in between. Skip every question `OPENING.md` already answers. Option shapes and why each question exists: `references/premise-gate.md`.
52
53
 
53
- The gate is passed when each of the five premises carries a source — `file:line`, the owner's message quoted, or an `ASM-n` label he has seen. A premise without a source is one question block (≤4) sent now, and nothing after this step runs — no premortem, no narrator, no subagent — until it is answered or ratified. A blanket delegation does not open this gate; it only turns band-2/3 premises into `ASM-n`.
54
+ The gate is passed when each of the five premises carries a source — `file:line`, the owner's message quoted, or an `ASM-n` label he has seen. A premise without a source is one question block (≤4) sent now, and nothing after this step runs — no premortem, no narrator, no subagent — until it is answered or ratified. A blanket delegation does not open this gate; it only turns band-2/3 premises into `ASM-n`. Under `--no-talk` no block is sent: a premise without a source takes the recommended answer of its question as `ASM-n [decided by absence — revisable]`, and PG-1/PG-2 — band 1, like any premise resting on a reference this session could not read — are written as premises and also as `decisions/DEC-NNNN-<slug>.md` in state `WAITING`, so the later steps run.
54
55
 
55
56
  ### 2. Back from the future
56
57
  Write the measured × faith inventory (5 sections) into `docs/decide/PREMORTEM.md`, then run 3–5 narrators (Opus, clean context, one persona each) that read only the inventory and the artifacts, never this conversation. Each writes `## ☠️ N.` deaths with a dated scene, an omen quoted literally from a project file with a named bias (or "no artifact mentions this point"), and a disarming test. Consolidate by convergence into F-01..F-0n ordered by lethality, TOP 3 marked, every quote re-opened and checked; close with "the missing rule" as a verifiable checklist. `references/premortem.md`.
@@ -62,18 +63,18 @@ Design mode (default): for each F-0n, a design mitigation, a sentinel (the obser
62
63
  Write `docs/decide/OPTIONS.html` — self-contained: one alternatives table per topic (design, architecture, flow, data model) with what becomes true, cost, what is lost, revert cost and the recommendation, plus the fixed block with the five gate answers. A Fable judge in clean context (never fork) reads the file and the evidence and returns an opinion per topic; the opinion is appended to the file as its own section. The file is published, and its path given to the owner, before the first interview question. `references/decision-room.md`.
63
64
 
64
65
  ### 5. Interview (blocking)
65
- A blanket delegation in the request ("pode decidir tudo", "me pergunta só o que for necessário") covers bands 2 and 3 only: those items become `ASM-n` and are never asked. Band 1 is asked anyway — money above the round's ceiling, irreversible outside the repo (deploy, destroy, credential in a new place, prod write), price or a promise to a customer, a scope cut, the number the owner will look at, an owner reference this session could not read, a recorded rule contradicted by new evidence. One block of ≤4 per round, ordered by impact, recommendation marked with its cost; the owner may answer "A" to ratify every recommended item at once. Ten minutes of silence ratify the recommended list (A), never a blocking item (B) and never a band-1 item.
66
+ A blanket delegation in the request ("pode decidir tudo", "me pergunta só o que for necessário") covers bands 2 and 3 only: those items become `ASM-n` and are never asked. Band 1 is asked anyway — money above the round's ceiling, irreversible outside the repo (deploy, destroy, credential in a new place, prod write), price or a promise to a customer, a scope cut, the number the owner will look at, an owner reference this session could not read, a recorded rule contradicted by new evidence. One block of ≤4 per round, ordered by impact, recommendation marked with its cost; the owner may answer "A" to ratify every recommended item at once. Ten minutes of silence ratify the recommended list (A), never a blocking item (B) and never a band-1 item. Under `--no-talk` nothing is asked: band-2/3 items become `ASM-n [decided by absence — revisable]`, each band-1 item becomes its own `WAITING` DEC file listed in PLAN §3, and `ROADMAP.md` marks the first phase whose work depends on one with `stop: owner` in its section.
66
67
 
67
68
  Count the decisions after step 4 and before the first question; number `n/N`; if the count grows, say "+k questions". Batteries of at most 4 per subject, ordered by impact, in the canonical format of `references/decision-policy.md` (fact with source, plain-words context, options with cost, recommendation first with its reason, "Claude decide" when delegable). Free text is a new requirement with its own ID, never an invalid answer; "Claude decide" is recorded as `ASM-n` and never asked again; an order against the recommendation gets one challenge with the cost named, then obeys. The helper `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/skills/ll-implement/scripts/ll-tools.js` is used only if it exists — this skill does not ship it; when it is absent, take the next number after the highest in `decisions/`; with it, `dec-reserve <n>` reserves the ids before the battery. `references/interview.md`.
68
69
 
69
70
  ### 6. Final round (blocking, always sent)
70
- Minimum contact: at least one message reaches the owner before PLAN.md is frozen, whatever the delegation was. It carries, in this order, (a) the decision count, (b) the counter `questions asked N / assumptions M / band-1 open K`, (c) the band-1 items still waiting for an answer, then every decision as it will be written — ID, decision, who decided, against-recommendation marks, assumptions. A run whose items are all band 2/3 still sends it, with `N = 0` and the ASM list. An item that was badly posed is re-asked here; a correction is applied and the list shown once more. "ok" or "A" freezes; ten minutes of silence ratifies the recommended list (A, the assumptions) and freezes PLAN.md too, but only when `band-1 open` is 0 — with one band-1 item open nothing freezes. Nothing is written before this round closes.
71
+ Minimum contact: at least one message reaches the owner before PLAN.md is frozen, whatever the delegation was. It carries, in this order, (a) the decision count, (b) the counter `questions asked N / assumptions M / band-1 open K`, (c) the band-1 items still waiting for an answer, then every decision as it will be written — ID, decision, who decided, against-recommendation marks, assumptions. A run whose items are all band 2/3 still sends it, with `N = 0` and the ASM list. An item that was badly posed is re-asked here; a correction is applied and the list shown once more. "ok" or "A" freezes; ten minutes of silence ratifies the recommended list (A, the assumptions) and freezes PLAN.md too, but only when `band-1 open` is 0 — with one band-1 item open nothing freezes. Under `--no-talk` the round is printed as a report, not asked: same content, counter `questions asked 0 / assumptions M / band-1 open K`, and the contract is written and frozen even with K > 0 — the `WAITING` DECs are what stop the dependent work, not this skill. Nothing is written before this round closes.
71
72
 
72
73
  ### 7. Write the contract
73
74
  At the repo root: `PLAN.md` §0–§11, `ROADMAP.md` when phases > 3, one `decisions/DEC-NNNN-<slug>.md` per decision plus `decisions/README.md`, and an empty `PROGRESS.md` with the `<!-- ll-state -->` block — templates in `references/plan-skeleton.md`. The id is four digits with no project prefix (`DEC-0007-cents-mismatch.md`, never `DEC-X-007`), reserved with `ll-tools.js dec-reserve` when the helper exists and otherwise taken as the next number after the highest in `decisions/`. `plan-lint` reads phase plans only (an `ll-milestones` block), so it runs in `ll-implement`, not here; before freezing, check by hand that every `T<n>` and `CA-nn` carries a command, every `REQ-<slug>` points to one phase, and every `I-nn` has a source. Answer the self-sufficiency test in §10 before ending: which test key to use, what is missing, given that this session's context will be cleared.
74
75
 
75
76
  ### 8. Hand off
76
- Report in Portuguese, opening with the counter `questions asked N / assumptions M / band-1 open K`, then the decision counts (owner / assumption / inherited / against recommendation), accepted risks, files written, hand-check result. With `N = 0` and `M > 5`, append one line under the phase heading of `PROGRESS.md`: `- review assumptions: <M> ASM written with 0 questions asked (<date>)`.
77
+ Report in Portuguese, opening with the counter `questions asked N / assumptions M / band-1 open K`, then the decision counts (owner / assumption / inherited / against recommendation), accepted risks, files written, hand-check result. Under `--no-talk` the report also names each `WAITING` DEC with its file path and the phase that carries `stop: owner`. With `N = 0` and `M > 5`, append one line under the phase heading of `PROGRESS.md`: `- review assumptions: <M> ASM written with 0 questions asked (<date>)`.
77
78
 
78
79
  Then stop and print the next command — one command, `ll-implement 1`, the attended run. An owner who wants the phases to run unattended may choose `ll-goal 1` instead; say it in the prose if he asks, never in the ▶ line. This skill does not write `phases/NN/PLAN.md`, does not dispatch executors and does not run a phase — the phase plan is written by `ll-implement` when the owner runs it, one phase at a time.
79
80
 
@@ -89,7 +90,7 @@ For every item, the current state: `file:line`, current price, current copy. An
89
90
  List the factual claims the material proposes (times, prices, numbers, names, credits) and check each against `PRODUCT.md`, the project CLAUDE.md and the code. Divergences are the first questions, because they poison every decision after them. The instruction "the reviewers are lay people in X" means evaluate, not obey.
90
91
 
91
92
  ### 4. Triage by impact
92
- Count the decisions before the first question. Order: money → offer → fact → copy → microcopy. Every question carries the reviewer's proposal, the anchored current state, the analysis and a recommendation; "reject" is always an option; in a scope question the maximalist option is always on the table. Anything for a human recipient asks the format once (`.xlsx` in `docs/`, artifact, issue) before being built.
93
+ Count the decisions before the first question. Order: money → offer → fact → copy → microcopy. Every question carries the reviewer's proposal, the anchored current state, the analysis and a recommendation; "reject" is always an option; in a scope question the maximalist option is always on the table. Anything for a human recipient asks the format once (`.xlsx` in `docs/`, artifact, issue) before being built. Under `--no-talk` the battery is not sent: the same order holds, each band-2/3 item takes its recommendation as `ASM-n [decided by absence — revisable]` and each band-1 item becomes a `WAITING` DEC.
93
94
 
94
95
  ### 5. Blind arbitration (automatic)
95
96
  Two or more competing versions of conversion copy → judges (Fable, clean context, one per item) receive product facts, audience, criteria and the versions unattributed, with the `<output_contract>` (≤150 words: VERDICT / Rationale / Version D if better). Not asked whether to do it; the verdict comes back into the numbered question as "(retomada)". Contract: `references/review-spec.md`.
@@ -98,13 +99,13 @@ Two or more competing versions of conversion copy → judges (Fable, clean conte
98
99
  Write `docs/review-<date>.md` in the 7 sections: self-contained header · decision log including rejected items · §1–§N copy verbatim per page with target file · §Sweep greps of what became obsolete · §External dependencies with the placeholder rule · §Deferred with reason · §Verification contract. Decisions in it are final.
99
100
 
100
101
  ### 7. External contract
101
- From §External dependencies, generate `docs/<slug>.xlsx` with checklist columns and a "how to use" tab, committed in the repo. Append the round to `ROADMAP.md` as a phase (`| NN | review <date> | … | PLANNED |` with a `## Phase NN` section whose success criteria are the §Verification contract and whose objective points at the spec). Report in Portuguese and stop: `▶ Next — /clear then ll-implement NN` (one executor per slice with a file allowlist).
102
+ From §External dependencies, generate `docs/<slug>.xlsx` with checklist columns and a "how to use" tab, committed in the repo. Append the round to `ROADMAP.md` as a phase (`| NN | review <date> | … | PLANNED |` with a `## Phase NN` section whose success criteria are the §Verification contract and whose objective points at the spec). Report in Portuguese and stop: `▶ Next — /clear, then ll-implement NN` (one executor per slice with a file allowlist).
102
103
 
103
104
  ## Completion criterion
104
105
 
105
- Project: `PLAN.md` exists at the repo root with §0–§11 (`git ls-files PLAN.md PROGRESS.md` returns both at the root), §10 answers the self-sufficiency test, every CA-nn has a command, `decisions/README.md` counts match the DEC files and every id is `DEC-NNNN-<slug>.md`, `PROGRESS.md` carries the empty `ll-state` block, the premise gate closed with a source per premise, the final round was sent and closed, the counter `questions asked N / assumptions M / band-1 open K` is printed, no `phases/NN/PLAN.md` was written, and the hand check of step 7 found nothing. Feedback: the inventory count equals the number of decisions logged plus deferred items, and the `.xlsx` is committed.
106
+ Project: `PLAN.md` exists at the repo root with §0–§11 (`git ls-files PLAN.md PROGRESS.md` returns both at the root), §10 answers the self-sufficiency test, every CA-nn has a command, `decisions/README.md` counts match the DEC files and every id is `DEC-NNNN-<slug>.md`, `PROGRESS.md` carries the empty `ll-state` block, the premise gate closed with a source per premise, the final round was sent and closed (printed as a report under `--no-talk`), the counter `questions asked N / assumptions M / band-1 open K` is printed, no `phases/NN/PLAN.md` was written, and the hand check of step 7 found nothing. Feedback: the inventory count equals the number of decisions logged plus deferred items, and the `.xlsx` is committed.
106
107
 
107
- ▶ Next — `/clear` then `ll-implement 1` (feedback mode: `/clear` then `ll-implement NN`, the phase appended in step 7).
108
+ ▶ Next — /clear, then ll-implement 1 (feedback mode: ll-implement NN, the phase appended in step 7)
108
109
 
109
110
  ## Questions
110
111
 
@@ -112,6 +113,7 @@ Project: `PLAN.md` exists at the repo root with §0–§11 (`git ls-files PLAN.m
112
113
  - Interview: batteries of at most 4 per subject, by impact, canonical format; counted before the first, `n/N` never renumbered. Feedback: counted before the first, one subject per call, money items alone.
113
114
  - Blanket delegation ("decide tudo"): covers bands 2 and 3; band-1 items are asked anyway, and an owner reference this session could not read is band 1.
114
115
  - Final round: always sent before writing, with the counter and the open band-1 list, even when zero questions were asked.
116
+ - `--no-talk`: steps 1, 5 and 6 send no question; band-2/3 items take the recommendation, recorded `[decided by absence — revisable]`; band-1 items are written as `WAITING` decisions and the contract is frozen anyway.
115
117
  - Never asked: the ten items of `references/decision-policy.md` (who executes, a fact readable from the repo, which pattern when a house pattern exists, a reversible detail inside a closed contract, another session's decision, out-of-scope subjects, a question that changes no action, copy without a commercial promise, industry defaults, the same policy question twice). Silence for 10 minutes ratifies the recommended option of a band-2/3 item, never option B and never band 1.
116
118
 
117
119
  ## Models
@@ -61,6 +61,9 @@ Silence of 10 minutes ratifies the recommended list (A), never a blocking item (
61
61
  ## Silence, delegation, directives
62
62
  - Silence for 10 minutes in the hot window (harness AFK timeout) ratifies option A of a band-2/3 item or
63
63
  list A of a map — never option B, never a band-1 item. Record `ratified by silence`; in a run, `[decided by absence — revisable]`.
64
+ - Under `--no-talk` the ten minutes are not waited for: the recommended option is taken at once and
65
+ recorded `[decided by absence — revisable]`. A band-1 item is never taken this way — it is written
66
+ as a decision in state `WAITING` and the work that depends on it stops there.
64
67
  - "Claude decide", "você decide", "pergunta pro time" are legitimate answers: record an assumption
65
68
  `ASM-n` (permanent; announced if changed later) or the delegation, and never ask that item again.
66
69
  - An order against the recommendation is a directive: one challenge with the cost named, then
@@ -30,6 +30,13 @@ every recommended item at once. Ten minutes of silence ratify the recommended li
30
30
  blocking item B and never a band-1 item. An interview that ends with zero questions asked while a
31
31
  band-1 item exists is the defect this rule exists for: the delegation was read as "never ask".
32
32
 
33
+ `--no-talk` goes one step further: no block leaves the session. Band-2/3 items take their
34
+ recommended option at once as `ASM-n [decided by absence — revisable]`; every item that stays a
35
+ question under a blanket delegation becomes `decisions/DEC-NNNN-<slug>.md` in state `WAITING`,
36
+ listed in PLAN §3 with what it blocks, and the first phase whose work depends on one carries
37
+ `stop: owner` in its ROADMAP section. Zero questions with a band-1 item open is the defect above
38
+ only when the item vanishes; here it is written, dated and pointed at from the plan.
39
+
33
40
  Order: the kickoff question first when it exists (big-bang vs incremental, minimum vs complete —
34
41
  it re-prices every later option, and later cost descriptions cite its answer); then by structural
35
42
  impact: domain / identity / schema → contracts (API, permissions, vocabulary) → navigation and
@@ -90,6 +97,9 @@ canonical format.
90
97
  A correction is applied and the list is shown once more. "ok" or "A" freezes; ten minutes of silence
91
98
  in the hot window ratifies the recommended list (A, the assumptions) and freezes PLAN.md too, but
92
99
  only when `band-1 open` is 0 — with one band-1 item open nothing freezes.
100
+ Under `--no-talk` the same message is printed as a report and no reply is waited for: `N = 0`, the
101
+ full ASM list, the WAITING ids under `band-1 open`, and PLAN.md is frozen right after it even with
102
+ K > 0 — the WAITING DECs hold the dependent phases, not the freeze.
93
103
  Nothing is written before this round closes.
94
104
 
95
105
  ## Recording
@@ -1,13 +1,11 @@
1
1
  # Plan skeleton — PLAN.md, ROADMAP.md, decisions/, PROGRESS.md
2
2
 
3
- Read at project step 7. Templates are literal; text in `<…>` is filled, everything else stays.
4
- All four land at the repo root — `PLAN.md`, `ROADMAP.md`, `PROGRESS.md`, `decisions/`, alongside
5
- `BACKLOG.md`, `docs/decide/` and `phases/NN/`. Never under `docs/<project>/`: the hooks and
6
- `ll-tools.js state` expect the state at the git top, and a displaced tree is reported as
7
- `git_top ≠ root` and stops `ll-implement`. A root already occupied by a closed round is archived into
8
- `docs/history/<round-slug>/` first (SKILL.md step 0), with `decisions/` and `BACKLOG.md` left in
9
- place so the ids continue.
10
- PLAN.md has no length ceiling — it is the only file where length buys quality — but detail that
3
+ Read at project step 7. Templates are literal; text in `<…>` is filled, everything else stays. All four land at the
4
+ repo root — `PLAN.md`, `ROADMAP.md`, `PROGRESS.md`, `decisions/`, alongside `BACKLOG.md`, `docs/decide/` and
5
+ `phases/NN/`. Never under `docs/<project>/`: the hooks and `ll-tools.js state` expect the state at the git top, and a
6
+ displaced tree is reported as `git_top ≠ root` and stops `ll-implement`. A root already occupied by a closed round is
7
+ archived into `docs/history/<round-slug>/` first (SKILL.md step 0), with `decisions/` and `BACKLOG.md` left in place
8
+ so the ids continue. PLAN.md has no length ceiling — it is the only file where length buys quality — but detail that
11
9
  lives elsewhere enters by path, not by copy.
12
10
 
13
11
  ## PLAN.md
@@ -63,7 +61,7 @@ never proceeds alone. External block (balance, key, host, limit) = record the ex
63
61
  PROGRESS.md and stop without marking done. TDD on by default; exceptions: <UI/layout/config/glue/migration>.
64
62
 
65
63
  ## §8 Phases
66
- <pointer to ROADMAP.md, or the 1–3 phases inline: NN — name — REQs — 2–5 success criteria SC-nn>. Current phase: 01.
64
+ <pointer to ROADMAP.md when phases > 3; with ≤3 phases, the same table ROADMAP.md uses, inline: `| phase | name | depends_on | requirements | state |` header, then one row per phase, e.g. `| 01 | <…> | — | REQ-a | PLANNED |`>. Current phase: 01.
67
65
 
68
66
  ## §9 Environment · keys · materials (names, never values)
69
67
  <env var names, key names and where they live, fixtures, design files, credentials recipe by name>.
@@ -92,8 +90,7 @@ Success criteria (2–5, observable, "the user can…"): SC-01 <…> · SC-02 <
92
90
  These are the verifier's contract, above whatever the phase plan says.
93
91
  Deferred ideas: <…> (the scope of a phase is fixed; new ideas land here, never widen the phase)
94
92
  ```
95
- States: PLANNED · ACTIVE · DONE (docs/history/<delivery>) · BLOCKED. Numbering is continuous for
96
- the life of the project; after a milestone, done phases collapse into `<details>`.
93
+ States: PLANNED · ACTIVE · DONE (docs/history/<delivery>) · BLOCKED. Numbering is continuous for the life of the project; after a milestone, done phases collapse into `<details>`.
97
94
 
98
95
  ## decisions/DEC-NNNN-<slug>.md
99
96
  ```
@@ -112,9 +109,12 @@ the life of the project; after a milestone, done phases collapse into `<details>
112
109
  - superseded_by: — (append `superseded_by: DEC-0090 on <date>, reason: …`; never edit)
113
110
  - if decided by absence: [decided by absence — revisable] + the recommendation followed
114
111
  ```
115
- The id is `DEC-` + four digits + `-<slug>`, with no project or round prefix (`DEC-0007-cents-mismatch.md`,
116
- never `DEC-X-007`); one flat `decisions/` folder per repo, numbering continuous across rounds.
117
- The helper `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/skills/ll-implement/scripts/ll-tools.js` is used only if it exists — this skill does not ship it; when it is absent, the id is the next number after the highest in the folder; with it, `dec-reserve <n>`. A number is never reused.
112
+ The id is `DEC-` + four digits + `-<slug>`, with no project or round prefix (`DEC-0007-cents-mismatch.md`, never `DEC-X-007`); one flat `decisions/` folder per repo, numbering continuous across rounds. The helper `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/skills/ll-implement/scripts/ll-tools.js` is used only if it exists — this skill does not ship it; when it is absent, the id is the next number after the highest in the folder; with it, `dec-reserve <n>`. A number is never reused.
113
+
114
+ ### `status: WAITING` — what `ll-decide --no-talk` writes instead of asking a band-1 question
115
+ The same file, frozen at the question: `class: QUESTION`, `grounding` naming the owner reference this session could not read, the options table with the recommendation marked, and the two lines below. The recommendation is written, never applied — a WAITING DEC is not a decision.
116
+ - status: WAITING — not asked (`--no-talk`, <date>); band 1: money, irreversible outside the repo, price or promise, scope cut, the number the owner will look at, a recorded rule contradicted by new evidence
117
+ - stop: owner — <what stays blocked until the answer> · PLAN §3 lists the id with decision `— (WAITING)`, `ROADMAP.md` marks the first phase whose work depends on it with `stop: owner` in its section, and the closing report names each file by path. The contract is frozen with these open: the WAITING files, not the skill, are what stop the dependent work.
118
118
 
119
119
  ## decisions/README.md
120
120
  ```
@@ -23,6 +23,13 @@ question — "attach the file or paste the content" — never a premise guessed
23
23
  the request says "fiel ao protótipo", the prototype is a premise and its source is the content
24
24
  read, cited by artifact id or path.
25
25
 
26
+ `--no-talk` sends no block at all. Each premise without a source takes the recommended option of
27
+ its question at once, written beside it as `ASM-n [decided by absence — revisable]`, and step 2
28
+ starts immediately. PG-1 and PG-2 are band 1 — as is any premise resting on a reference the
29
+ session could not read: they are recorded as premises and also as `decisions/DEC-NNNN-<slug>.md`
30
+ in state `WAITING`, so what the owner still owes is written down rather than dropped, and the
31
+ work that depends on a WAITING id is what stops later, never this step.
32
+
26
33
  The tool takes four questions per call: 1–4 in the first call, 5 in the next, nothing in between.
27
34
  Format: the canonical one in `decision-policy.md` — `[PG-n] Question n/5 — <title> (impact HIGH ·
28
35
  revert: <cost>)`, `FACT:` with what the repo or the request already shows, the decision in
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: ll-goal
3
- description: Writes the `/goal` text that carries a phase to delivery with nobody watching — one objective with a number, literal proofs, the fixed invalidating rules, execution, budget, decisions and stop rule — and saves it as docs/GOAL.md, versioned. Use when the owner says "goal", "me dá o texto do goal", "roda de noite até entregar", at the end of an ll-decide project run, or before a phase that will run unattended. The owner pastes the output into `/goal` in a new session; to write the plan the goal points at, use ll-decide.
4
- argument-hint: "[phase-number]"
3
+ description: Writes the unattended-run text for /goal, with one numbered objective, literal proofs, invalidating rules, budget, decisions and a stop rule, saved as a versioned docs/GOAL.md; --autonomous covers the whole delivery.
4
+ argument-hint: "[phase-number | --autonomous [\"<objective>\"]]"
5
5
  disable-model-invocation: true
6
6
  ---
7
7
 
@@ -18,7 +18,7 @@ Reply to the owner in Portuguese; docs/GOAL.md is in English.
18
18
 
19
19
  | File | Role | Mutability |
20
20
  | --- | --- | --- |
21
- | `docs/GOAL.md` | frontmatter (`date`, `plan`, `phase`, `ceiling_usd`, `max_turns`) + the 9-part text | rewritten whole on each run, committed |
21
+ | `docs/GOAL.md` | frontmatter (`date`, `plan`, `phase`, `ceiling_usd` or `mode`, `max_turns`) + the 9-part text | rewritten whole on each run, committed |
22
22
  | the text in the conversation | what the owner copies into `/goal` | ≤4,000 chars, no fence, no commentary around it |
23
23
 
24
24
  The goal is a versioned file. A goal aimed at a published artifact or an untracked path has no
@@ -49,13 +49,31 @@ contract behind it: every path it names is tracked, or the goal is not emitted.
49
49
  (`docs: goal for phase NN`). Run the 10-line checklist at the end of the template; fix what it
50
50
  catches. Then paste the text into the conversation as plain lines, and print the next step.
51
51
 
52
+ ## Autonomous mode
53
+
54
+ `--autonomous ["<objective>"]` writes the text for the whole delivery instead of one phase — the
55
+ same five steps, with these differences:
56
+
57
+ 1. Pre-flight reads `PLAN.md` and `ROADMAP.md` at the git top; no phase plan is required, the run
58
+ writes the ones that are missing. The stages still owed come from
59
+ `${CLAUDE_CONFIG_DIR:-$HOME/.claude}/skills/ll-auto/scripts/ll-auto.js detect --json` when that
60
+ helper is installed, and from `ROADMAP.md` plus `PROGRESS.md` when it is not.
61
+ 2. Skipped: `--auto-decision` resolves each WAITING decision to its recommended option, and the text
62
+ says the end-of-run block lists every decision taken alone.
63
+ 3. Asks nothing when the invocation carries an objective or `PLAN.md` already holds one.
64
+ 4. Assembles the parts from the `## Autonomous variant` section of `references/goal-template.md`:
65
+ eight parts, no BUDGET, EXECUTION pointing at `ll-auto --auto-decision` until the delivery is
66
+ closed, and the three extra checklist lines.
67
+ 5. `docs/GOAL.md` carries `mode: autonomous` and `phase: all`; the commit message is
68
+ `docs: goal for the whole delivery`.
69
+
52
70
  ## Completion criterion
53
71
 
54
72
  `docs/GOAL.md` exists and is committed; the text is in the conversation at ≤4,000 chars (`wc -c`);
55
73
  the checklist passed. Close with:
56
74
 
57
75
  ```
58
- ▶ Next — `/clear`, then paste `/goal <text>`
76
+ ▶ Next — /clear, then /goal <text>
59
77
  ```
60
78
 
61
79
  ## References
@@ -88,3 +88,60 @@ project CLAUDE.md, in `settings.json` deny rules, or in a hook — written once,
88
88
  8. Every band-1 decision has an owner and a channel; nothing irreversible is left to absence.
89
89
  9. No paragraph of PLAN.md, ROADMAP.md or a decision file is repeated — each appears as a pointer.
90
90
  10. `wc -c` of the text ≤ 4000, and docs/GOAL.md carries the five frontmatter fields.
91
+ 11. Autonomous variant: EXECUTION names `ll-auto --auto-decision`; without it nothing restarts.
92
+ 12. Autonomous variant: no BUDGET part, and the frontmatter says `mode: autonomous`, not a ceiling.
93
+ 13. Autonomous variant: DONE WHEN ends at `docs/DELIVERY.md`, not at one phase's board.
94
+
95
+ ## Autonomous variant
96
+
97
+ The whole delivery instead of one phase. Frontmatter — still five fields: `date`, `plan: PLAN.md`,
98
+ `phase: all`, `mode: autonomous`, `max_turns`; no `ceiling_usd`. The parts are the nine above minus
99
+ BUDGET:
100
+
101
+ - OBJECTIVE: everything ROADMAP.md still lists, closed by `docs/DELIVERY.md`.
102
+ - READ FIRST: `PLAN.md` §0/§2/§3/§7, `ROADMAP.md`, `docs/AUTO.md` when it exists.
103
+ - DONE WHEN: `docs/DELIVERY.md` exists; `PROGRESS.md` carries the epilogue of the last ROADMAP
104
+ phase; every `phases/NN/VERIFICATION.md` of the run is APPROVED or APPROVED_WITH_RESERVATIONS;
105
+ every `docs/AUTO.md` roteiro row is done or skipped with `## Decisions taken alone` filled; the
106
+ build command exits 0; `git status --porcelain` empty.
107
+ - INVALIDATING: the fixed block above, verbatim.
108
+ - EXECUTION: `skill ll-auto --auto-decision` — plus `"<objective>"` and `--verify all` when given —
109
+ started again from this text whenever the session stops before DONE WHEN. The text never asks the
110
+ owner to paste a command: `ll-auto` carries the stages (`skills/ll-auto/SKILL.md`, Flow). Models
111
+ per role from PLAN.md §7.
112
+ - DECISIONS: every decision that stays inside the repository is taken, recorded `[decided by absence
113
+ — revisable]` and listed at the end; the run stops only for money leaving the account, production
114
+ data, credentials, anything irreversible.
115
+ - STATE: `docs/AUTO.md`, one log line per stage; `PROGRESS.md`, one block per wave.
116
+ - STOP: external block = record the exact state and stop, without marking done.
117
+
118
+ ## Autonomous example
119
+
120
+ Rendered for `scripts/fixtures/project`: phases 07 and 08 left, then close.
121
+
122
+ ```
123
+ /goal Deliver what ROADMAP.md still owes — phases 07 and 08 — to main, tested, per PLAN.md.
124
+
125
+ DONE WHEN: docs/DELIVERY.md exists; PROGRESS.md carries ## Epilogue — phase 08; phases/07 and
126
+ phases/08 VERIFICATION.md say APPROVED or APPROVED_WITH_RESERVATIONS; docs/AUTO.md has every roteiro
127
+ row done or skipped and ## Decisions taken alone filled; `npm test` exit 0; `git status --porcelain`
128
+ empty — each pasted here as its last output line. Or stop after 80 turns, saying what is missing.
129
+
130
+ READ FIRST: PLAN.md (§0, §2, §3, §7), ROADMAP.md phases 07 and 08, docs/AUTO.md when it exists.
131
+
132
+ INVALIDATING: deleting, weakening, skipping or marking as skip any test, acceptance or threshold;
133
+ self-validation instead of a clean-context verifier; a TODO or "phase 2" left in a milestone marked
134
+ done; partial delivery counted as done. Impossibility without an implemented alternative does not
135
+ complete the goal.
136
+
137
+ EXECUTION: skill ll-auto --auto-decision --verify all, started again from this text whenever the
138
+ session stops before DONE WHEN. Models per role from PLAN.md §7.
139
+
140
+ DECISIONS: everything that stays inside the repository is decided, recorded [decided by absence —
141
+ revisable] and listed at the end; money, production data and credentials never proceed alone.
142
+
143
+ STATE: docs/AUTO.md one log line per stage; PROGRESS.md one block per wave.
144
+
145
+ STOP: external block (key, host, rate limit, an answer only the owner has) = record the state in
146
+ PROGRESS.md and STOP without marking done.
147
+ ```
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: ll-implement
3
- description: "Runs one phase end to end in a single invocation — a skippable one-screen conversation, code scouting, a phase plan the session writes, one adversarial review, TDD waves with one executor per milestone and atomic commits, clean-context verification against the ROADMAP criteria, and an epilogue with the next command. Use when the request is \"implementa a fase N\", \"continua\", \"roda a fase\", when phases/NN/PLAN.md has a milestone with `passes: false`, or when the /goal text cites this skill. Without a project PLAN.md contract it stops and points to `ll-decide`; the phase conversation is skipped when `ll-brainstorm` already wrote phases/NN/DECISIONS.md. To audit a closed delivery, use `ll-verify`; to archive it, `ll-close`."
3
+ description: Runs one phase end to end, from code scouting and a phase plan through TDD waves with one executor per milestone and atomic commits, to clean-context verification against the ROADMAP criteria and an epilogue.
4
4
  argument-hint: "[phase-number] [--no-talk] [--wave N]"
5
+ disable-model-invocation: true
5
6
  allowed-tools: Bash(${CLAUDE_SKILL_DIR}/scripts/ll-tools.js *)
6
7
  ---
7
8
 
@@ -62,6 +63,7 @@ One `ll-verifier` (`model: opus`) with the plan-review brief: mode plan, the 8 q
62
63
  The gate: no executor is dispatched until `phases/NN/PLAN-REVIEW.md` is on disk; `APPROVED` opens wave 1; `REJECTED` opens it only after every Gaps line is applied to the plan under `## Errata` and `plan-lint` and `waves` rerun clean — no second review. Review first, wave 1 after, never in parallel; there is no `--no-review`. A request to skip the review is answered with the cost, and the review runs.
63
64
 
64
65
  ### 5. Waves
66
+ Every owner message that arrives during the phase is recorded as `ll-tools.js heartbeat "owner: <summary ≤ 80 chars>"` before acting on it.
65
67
  For each wave, in this order:
66
68
  1. `ll-tools.js heartbeat "wave i/M — <what it builds>"`; print the same line in the conversation.
67
69
  2. `ll-tools.js dec-reserve <n>` with n = milestones in the wave; the returned `ids` fill each brief's `DEC RESERVED` line. Ids never come from an executor.
@@ -90,7 +92,7 @@ One `ll-verifier` (`model: opus`) with the phase brief: mode phase, ROADMAP and
90
92
  Every milestone of the phase has `passes: true` under the three conditions of step 5.6 — `tdd-gate` pass or `tdd: no`, `spot-check` pass, acceptance last line in PROGRESS — with the acceptance run in this session; `phases/NN/PLAN-REVIEW.md` and `phases/NN/VERIFICATION.md` exist, the second without BLOCKS; only `phases/NN/` was planned; `git status --porcelain` is empty; the epilogue is written. Every missing proof is named with the command that would close it.
91
93
  The epilogue's last count line, printed in the conversation and written to PROGRESS:
92
94
  `milestones passed X/Y · questions asked N / assumptions M / band-1 open K · amendments A · verification: phases/NN/VERIFICATION.md <verdict>`
93
- ▶ Next — `/clear`, then `ll-implement N+1`, or `ll-verify NN --external` / `ll-close` as the epilogue says.
95
+ ▶ Next — /clear, then ll-implement N+1 (or ll-verify NN --external, or ll-close, as the epilogue says)
94
96
  The ▶ Next line is the last thing this invocation does: no review, plan, verifier or executor of another phase is started after it; the next phase exists when the owner pastes the command.
95
97
 
96
98
  ## Questions
@@ -61,6 +61,9 @@ Silence of 10 minutes ratifies the recommended list (A), never a blocking item (
61
61
  ## Silence, delegation, directives
62
62
  - Silence for 10 minutes in the hot window (harness AFK timeout) ratifies option A of a band-2/3 item or
63
63
  list A of a map — never option B, never a band-1 item. Record `ratified by silence`; in a run, `[decided by absence — revisable]`.
64
+ - Under `--no-talk` the ten minutes are not waited for: the recommended option is taken at once and
65
+ recorded `[decided by absence — revisable]`. A band-1 item is never taken this way — it is written
66
+ as a decision in state `WAITING` and the work that depends on it stops there.
64
67
  - "Claude decide", "você decide", "pergunta pro time" are legitimate answers: record an assumption
65
68
  `ASM-n` (permanent; announced if changed later) or the delegation, and never ask that item again.
66
69
  - An order against the recommendation is a directive: one challenge with the cost named, then
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: ll-oncall
3
- description: Runs a session that holds a role instead of a task — writes the `## Federation` contract into the project CLAUDE.md, resolves peers by prefix before every send, answers in the 4-field DONE/EVIDENCE/REFERENCE/PENDING block, and keeps a numbered request log; `watch` turns a vigil into a 5-element brief with a baseline and a degradation rule, `ops` runs a capability pre-flight and a pre-deploy that exercises the exact operation. Use when the request is "Você é o agente responsável por…", when the session was opened as `claude -n <role>`, when it is "a cada 1h verifique…", "vigie…", "monitore…", or when the action is a deploy, apply, cutover, IP change, credential, "avisa a infra", "peça para o agente de infra" — the OPS regime. For planning work, a spec or a roadmap use ll-decide; for a refinement round on a running product use ll-refine.
3
+ description: Runs a session that holds a role instead of a task, writing the Federation contract into the project CLAUDE.md and keeping a numbered request log; watch builds a vigil brief, ops runs a deploy pre-flight.
4
4
  argument-hint: "[role <name> | watch [<slug>] | ops]"
5
+ disable-model-invocation: true
5
6
  ---
6
7
 
7
8
  # On call
@@ -113,7 +114,7 @@ delivery answered in 4 fields to the peer and to the owner; `docs/REQUESTS.md` c
113
114
  entries with their responses; a `watch` with brief, baseline and probe committed; an `ops` with its
114
115
  pre-flight output pasted.
115
116
 
116
- `▶ Next — /clear then ll-resume` in a new session of the same role, or the command the round names.
117
+ `▶ Next — /clear, then ll-resume (in a new session of the same role, or the command the round names)`
117
118
 
118
119
  ## References
119
120
 
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: ll-refine
3
- description: Runs one refinement round on a product that already runs — a production review by ll-reviewer, an impact-ordered decision battery, sliced work with a per-coder file allowlist, a deterministic gate that only blocks new errors, and the round recorded in PROGRESS.md; in `visual` mode it drives the reference → calibrated gate → clean-context validator → area-owner loop until the verdict is FIEL. Use when the product is already running and the request is "melhorar as telas", "refino", "rodada", "fiel ao protótipo", "valide visualmente", "outra rodada", "improve the screens", "make it match the prototype" — the REFINE regime. External written feedback (docx, pdf, spreadsheet) is ingested by ll-decide in feedback mode, not here; to audit a finished delivery use ll-verify.
3
+ description: Runs one refinement round on a product already in production, from a review and an impact-ordered decision battery to sliced work with a per-coder file allowlist and a gate that blocks only new errors.
4
4
  argument-hint: "[product | visual] [--round N]"
5
+ disable-model-invocation: true
5
6
  ---
6
7
 
7
8
  # Refine
@@ -107,7 +108,7 @@ last output line pasted into the round record; every finding is fixed, deferred
107
108
  `BACKLOG` with an executable closing condition; `visual` mode has `validation/E<n>/REPORT.md` with every
108
109
  element `FIEL`; `PROGRESS.md` has `### Round N — <date>`; `git status --porcelain` is empty.
109
110
 
110
- `▶ Next — /clear then ll-verify` when the round is the last one, or `/clear then ll-refine --round N+1`.
111
+ `▶ Next — /clear, then ll-verify (or ll-refine --round N+1, when the round is not the last one)`
111
112
 
112
113
  ## References
113
114
 
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: ll-research
3
- description: Researches a topic with clean-context fronts and web search, delivering `docs/research-<topic>/` in two layers — a SUMMARY.md that separates what to apply from what only the owner can decide and what gates it, plus the per-front evidence trail and a dated, liveness-checked source list. Use when the request is "pesquise", "faça uma pesquisa profunda", "compare A e B", "veja se alguém já resolveu", "docs oficiais de…", "research X", "compare A vs B", "check if anyone already solved this", or when a declared constraint has not been validated by whoever decides. For a market, competitor, pricing or sizing question add `--market`; to turn the findings into a plan, the next command is `ll-decide project`.
3
+ description: Researches a topic with clean-context fronts and web search, delivering a SUMMARY.md that separates what to apply from what only the owner can decide, plus the evidence trail and a dated source list.
4
4
  argument-hint: <topic> [--market] [--constraints "…"]
5
+ disable-model-invocation: true
5
6
  ---
6
7
 
7
8
  # Research
@@ -78,7 +79,7 @@ Report in Portuguese: where the files are, the short answer with numbers, the op
78
79
 
79
80
  Done when `SUMMARY.md` carries `## Apply`, `## Discuss`, `## Gates` and `## What the evidence does NOT cover`; every claim under `## Apply` names a source labelled `[VERIFIED]` in `sources.md`; every front has its note under `evidence/`; and every declared constraint appears either as validated or as a dated premise. Anything left out is said out loud, with the reason.
80
81
 
81
- ▶ Next — `/clear` then `ll-decide project` reading `docs/research-<topic>/SUMMARY.md`.
82
+ ▶ Next — /clear, then ll-decide project (reading docs/research-<topic>/SUMMARY.md)
82
83
 
83
84
  ## References
84
85
 
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: ll-resume
3
- description: Reconstructs where a project stands in a fixed reading order and answers with a briefing of at most 20 lines — where we are, what changed since the owner last took part, what it cost, what is blocked, what waits on him, and the next command. Use when it is the first turn in a repo that has PROGRESS.md, or when the owner asks "Como está o status e qual o próximo passo?", "Qual o estado atual?", "O que tenho pra decidir?", "onde paramos?", "what is the status", "where did we stop", "what do I have to decide" — the RESUME regime. It does not write anything; for closing a phase and recording the delivery use ll-close.
3
+ description: Reconstructs where a project stands in a fixed reading order and answers with a briefing of at most 20 lines - state, cost, blockers, what waits on the owner and the next command. It writes no file.
4
4
  argument-hint: "[--decisions]"
5
+ disable-model-invocation: true
5
6
  ---
6
7
 
7
8
  # Resume
@@ -47,7 +48,7 @@ Custo — <days with work · span · commits · agent runs, only where measurabl
47
48
  Bloqueado — <M<n>> por <cause, with evidence> | nada
48
49
  Espera por você — <n> decisões WAITING: <ID> <one line each> | nada
49
50
  Não verificado — <stale memory of N days, orphan worktree, phantom goal, absent verification>
50
- ▶ Next — <the command the epilogue names>
51
+ ▶ Next — /clear, then <the command the epilogue names>
51
52
  ```
52
53
 
53
54
  Every claim carries its evidence — sha, `file:line`, or date; a green milestone with no commit
@@ -72,4 +73,4 @@ Projects not yet migrated keep the Portuguese names — read them, rename nothin
72
73
 
73
74
  ## Completion criterion
74
75
 
75
- Briefing in ≤20 lines, ≤5 tool calls, 0–1 questions, zero files touched, last line `▶ Next — <cmd>`.
76
+ Briefing in ≤20 lines, ≤5 tool calls, 0–1 questions, zero files touched, last line `▶ Next — /clear, then <cmd>`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ll-update
3
- description: Updates the installed ll-skills package to the latest published version — reads the installed and published versions, shows the CHANGELOG entries between them before touching anything, asks once, runs the installer and reports which skills changed. Use when the owner says "atualiza o ll-skills", "atualizar as skills", "tem versão nova do ll-skills?", or when the session warning says "ll-skills desatualizado (instalado X, disponível Y) — rode /ll-update". It installs nothing else — every mutation goes through the package installer, and no project file is touched.
3
+ description: Updates the installed ll-skills package to the latest published version, showing the CHANGELOG entries between the two, asking once, running the installer and reporting which skills changed.
4
4
  argument-hint: "[--no-preamble]"
5
5
  disable-model-invocation: true
6
6
  ---
@@ -66,6 +66,11 @@ carries the old skills — new or renamed skills appear after restarting Claude
66
66
  content of an existing skill is read on its next invocation. If `VERSION` did not change, say
67
67
  that instead of declaring success.
68
68
 
69
+ ## Completion criterion
70
+
71
+ The installed `VERSION` equals the published one (or the owner declined the update) and the report above was printed.
72
+ ▶ Next — /clear, then ll-resume (the running session keeps the old skill texts until it restarts)
73
+
69
74
  ## Migration from 1.x
70
75
 
71
76
  The first 2.x install removes the eight Portuguese skills — `ll-orquestrar`, `ll-pesquisar`,
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: ll-verify
3
- description: Audits a finished phase or delivery in clean context — three layers (mechanical, contract, integrity) that never saw the implementation reasoning, a per-criterion ledger with file:line and FRESH/STALE hashes, and a VERIFICATION.md carrying a verdict, two seals and the blocks. Use when the request is "verifica a entrega", "audita isso", "confere se terminou de verdade", "revisa a implementação", when the /goal text cites this skill, at the end of a phase that touches a public contract, money or customer data, and before and after a push that deploys. Findings are findings — the session decides what to fix; to close the delivery, write DELIVERY.md and archive, use ll-close.
3
+ description: Audits a finished phase or delivery in clean context, in three layers that never saw the implementation reasoning, and writes VERIFICATION.md with a per-criterion ledger, a verdict and two seals.
4
4
  argument-hint: "[phase-number] [--external] [--criterion SC-nn]"
5
+ disable-model-invocation: true
5
6
  allowed-tools: Bash(${CLAUDE_SKILL_DIR}/scripts/ll-tools.js *)
6
7
  ---
7
8