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.
- package/CHANGELOG.md +21 -0
- package/README.md +42 -20
- package/agents/ll-executor.md +1 -0
- package/assets/preamble.md +29 -35
- package/bin/install.js +4 -1
- package/hooks/ll-precompact.js +29 -1
- package/hooks/ll-skills-check-update.js +6 -6
- package/hooks/ll-state.js +30 -2
- package/package.json +3 -2
- package/scripts/evals/README.md +57 -0
- package/scripts/evals/cases/auto-dry-run/assert.sh +35 -0
- package/scripts/evals/cases/auto-dry-run/case.json +8 -0
- package/scripts/evals/cases/auto-dry-run/prompt.txt +1 -0
- package/scripts/evals/cases/auto-empty-repo/assert.sh +25 -0
- package/scripts/evals/cases/auto-empty-repo/case.json +8 -0
- package/scripts/evals/cases/auto-empty-repo/fixture/.gitkeep +0 -0
- package/scripts/evals/cases/auto-empty-repo/prompt.txt +1 -0
- package/scripts/evals/cases/decide-final-round/assert.sh +32 -0
- package/scripts/evals/cases/decide-final-round/case.json +8 -0
- package/scripts/evals/cases/decide-final-round/fixture/README.md +3 -0
- package/scripts/evals/cases/decide-final-round/prompt.txt +1 -0
- package/scripts/evals/cases/executor-block/assert.sh +33 -0
- package/scripts/evals/cases/executor-block/case.json +8 -0
- package/scripts/evals/cases/executor-block/prompt.txt +14 -0
- package/scripts/evals/cases/goal-autonomous/assert.sh +35 -0
- package/scripts/evals/cases/goal-autonomous/case.json +8 -0
- package/scripts/evals/cases/goal-autonomous/fixture/PLAN.md +42 -0
- package/scripts/evals/cases/goal-autonomous/fixture/PROGRESS.md +20 -0
- package/scripts/evals/cases/goal-autonomous/fixture/ROADMAP.md +29 -0
- package/scripts/evals/cases/goal-autonomous/fixture/package.json +8 -0
- package/scripts/evals/cases/goal-autonomous/fixture/src/money.js +6 -0
- package/scripts/evals/cases/goal-autonomous/fixture/test/reconcile.test.js +8 -0
- package/scripts/evals/cases/goal-autonomous/prompt.txt +1 -0
- package/scripts/evals/cases/implement-review-gate/assert.sh +35 -0
- package/scripts/evals/cases/implement-review-gate/case.json +8 -0
- package/scripts/evals/cases/implement-review-gate/prompt.txt +1 -0
- package/scripts/evals/cases/implement-stops-at-next/assert.sh +39 -0
- package/scripts/evals/cases/implement-stops-at-next/case.json +9 -0
- package/scripts/evals/cases/implement-stops-at-next/prompt.txt +1 -0
- package/scripts/evals/cases/preamble-no-ritual/assert.sh +17 -0
- package/scripts/evals/cases/preamble-no-ritual/case.json +8 -0
- package/scripts/evals/cases/preamble-no-ritual/fixture/README.md +3 -0
- package/scripts/evals/cases/preamble-no-ritual/fixture/src/a.ts +3 -0
- package/scripts/evals/cases/preamble-no-ritual/prompt.txt +1 -0
- package/scripts/evals/cases/router-execute/assert.sh +12 -0
- package/scripts/evals/cases/router-execute/case.json +8 -0
- package/scripts/evals/cases/router-execute/prompt.txt +1 -0
- package/scripts/evals/cases/router-research/assert.sh +11 -0
- package/scripts/evals/cases/router-research/case.json +8 -0
- package/scripts/evals/cases/router-research/fixture/README.md +3 -0
- package/scripts/evals/cases/router-research/prompt.txt +1 -0
- package/scripts/evals/cases/router-small/assert.sh +21 -0
- package/scripts/evals/cases/router-small/case.json +8 -0
- package/scripts/evals/cases/router-small/fixture/README.md +17 -0
- package/scripts/evals/cases/router-small/prompt.txt +1 -0
- package/scripts/evals/cases/scout-no-plan/assert.sh +41 -0
- package/scripts/evals/cases/scout-no-plan/case.json +8 -0
- package/scripts/evals/cases/scout-no-plan/prompt.txt +8 -0
- package/scripts/evals/cases/verifier-weakened-test/assert.sh +19 -0
- package/scripts/evals/cases/verifier-weakened-test/case.json +8 -0
- package/scripts/evals/cases/verifier-weakened-test/prompt.txt +13 -0
- package/scripts/evals/cases/verifier-weakened-test/setup.sh +19 -0
- package/scripts/evals/fixtures/manual-contract/out.json +29 -0
- package/scripts/evals/fixtures/manual-contract/out.txt +5 -0
- package/scripts/evals/fixtures/manual-contract/with-skill.json +46 -0
- package/scripts/evals/lib/assert.sh +107 -0
- package/scripts/evals/lib/extract.js +73 -0
- package/scripts/evals/run.sh +369 -0
- package/scripts/fixtures/auto-closed/PLAN.md +5 -0
- package/scripts/fixtures/auto-closed/PROGRESS.md +20 -0
- package/scripts/fixtures/auto-closed/ROADMAP.md +6 -0
- package/scripts/fixtures/auto-closed/docs/DELIVERY.md +3 -0
- package/scripts/fixtures/auto-decisions/decisions/DEC-0001-taken-alone.md +13 -0
- package/scripts/fixtures/auto-decisions/decisions/DEC-0002-owner.md +13 -0
- package/scripts/fixtures/auto-noroadmap/PLAN.md +20 -0
- package/scripts/fixtures/auto-noroadmap/PROGRESS.md +11 -0
- package/scripts/fixtures/auto-verify-next/PLAN.md +5 -0
- package/scripts/fixtures/auto-verify-next/PROGRESS.md +18 -0
- package/scripts/fixtures/auto-verify-next/ROADMAP.md +5 -0
- package/scripts/fixtures/auto-verify-next/phases/01/PLAN.md +6 -0
- package/scripts/fixtures/evals-auto/auto-dry-run/pass.txt +18 -0
- package/scripts/fixtures/evals-auto/auto-empty-repo/pass.txt +2 -0
- package/scripts/fixtures/evals-auto/goal-autonomous/pass.txt +29 -0
- package/scripts/fixtures/lint-bad/folded-description/SKILL.md +13 -0
- package/scripts/fixtures/lint-bad/model-invocation-false/SKILL.md +10 -0
- package/scripts/fixtures/next-bad/skills/ll-bad/SKILL.md +30 -0
- package/scripts/fixtures/next-good/skills/ll-good/SKILL.md +26 -0
- package/scripts/fixtures/project/PROGRESS.md +4 -0
- package/scripts/lint-contract.cjs +495 -0
- package/scripts/lint-prompts.sh +396 -0
- package/scripts/ll-tools.js +465 -447
- package/scripts/smoke-test.sh +380 -1
- package/skills/ll-auto/SKILL.md +74 -0
- package/skills/ll-auto/references/run.md +75 -0
- package/skills/ll-auto/references/stages.md +66 -0
- package/skills/ll-auto/scripts/ll-auto.js +345 -0
- package/skills/ll-brainstorm/SKILL.md +5 -4
- package/skills/ll-brainstorm/references/decision-policy.md +3 -0
- package/skills/ll-close/SKILL.md +5 -5
- package/skills/ll-close/references/delivery.md +3 -1
- package/skills/ll-decide/SKILL.md +13 -11
- package/skills/ll-decide/references/decision-policy.md +3 -0
- package/skills/ll-decide/references/interview.md +10 -0
- package/skills/ll-decide/references/plan-skeleton.md +14 -14
- package/skills/ll-decide/references/premise-gate.md +7 -0
- package/skills/ll-goal/SKILL.md +22 -4
- package/skills/ll-goal/references/goal-template.md +57 -0
- package/skills/ll-implement/SKILL.md +4 -2
- package/skills/ll-implement/references/decision-policy.md +3 -0
- package/skills/ll-oncall/SKILL.md +3 -2
- package/skills/ll-refine/SKILL.md +3 -2
- package/skills/ll-research/SKILL.md +3 -2
- package/skills/ll-resume/SKILL.md +4 -3
- package/skills/ll-update/SKILL.md +6 -1
- package/skills/ll-verify/SKILL.md +2 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# DEC-0001 — retry policy for the provider adapter
|
|
2
|
+
|
|
3
|
+
- Date: 2026-09-10
|
|
4
|
+
- Decided by: the run, under `--auto-decision`
|
|
5
|
+
- status: DECIDED — three retries with exponential backoff [decided by absence — revisable]
|
|
6
|
+
|
|
7
|
+
## Decision
|
|
8
|
+
|
|
9
|
+
The adapter retries a failed provider call three times with exponential backoff.
|
|
10
|
+
|
|
11
|
+
## Why
|
|
12
|
+
|
|
13
|
+
The recommended option of the open question; nobody answered before the run reached the stage.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# DEC-0002 — the reconciliation window is 24 hours
|
|
2
|
+
|
|
3
|
+
- Date: 2026-09-10
|
|
4
|
+
- Decided by: the owner, in free text
|
|
5
|
+
- status: DECIDED — 24 hours
|
|
6
|
+
|
|
7
|
+
## Decision
|
|
8
|
+
|
|
9
|
+
The reconciliation job compares a 24-hour window, not a calendar day.
|
|
10
|
+
|
|
11
|
+
## Why
|
|
12
|
+
|
|
13
|
+
The owner answered the question directly, so no marker is carried here.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# PLAN — fixture without ROADMAP
|
|
2
|
+
|
|
3
|
+
Three phases or fewer: the phase table lives inline in §8, there is no ROADMAP.md.
|
|
4
|
+
|
|
5
|
+
## §7 Execution protocol
|
|
6
|
+
|
|
7
|
+
Session fable/high; contract executor opus/high.
|
|
8
|
+
|
|
9
|
+
## §8 Phases
|
|
10
|
+
|
|
11
|
+
| phase | name | requirements | state |
|
|
12
|
+
|---|---|---|---|
|
|
13
|
+
| 01 | intake | REQ-a | DONE (docs/history/v1.0) |
|
|
14
|
+
| 02 | reporting | REQ-b | ACTIVE |
|
|
15
|
+
|
|
16
|
+
Current phase: 02.
|
|
17
|
+
|
|
18
|
+
## §9 Environment
|
|
19
|
+
|
|
20
|
+
`FIXTURE_KEY` (name only, never the value).
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# PROGRESS — fixture whose epilogue asks for the audit
|
|
2
|
+
|
|
3
|
+
<!-- ll-state -->
|
|
4
|
+
phase: 01
|
|
5
|
+
milestones:
|
|
6
|
+
M1: { passes: true, commit: a1b2c3d, accepted_at: 2026-09-09T10:00:00Z }
|
|
7
|
+
M2: { passes: false, reason: "acceptance red: 1 test fails" }
|
|
8
|
+
<!-- /ll-state -->
|
|
9
|
+
|
|
10
|
+
## Phase 01
|
|
11
|
+
|
|
12
|
+
- [2026-09-09T09:00Z] phase 01 opened — intake
|
|
13
|
+
|
|
14
|
+
## Epilogue — phase 01 — 2026-09-09
|
|
15
|
+
|
|
16
|
+
passed: M1 · left: M2 (acceptance red)
|
|
17
|
+
milestones passed 1/2 · questions asked 0 / assumptions 0 / band-1 open 0 · amendments 0 · verification: pending
|
|
18
|
+
▶ Next — `/clear`, then `ll-verify 01`
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
research todo no docs/research-*/SUMMARY.md
|
|
2
|
+
brainstorm todo no docs/decide/OPENING.md
|
|
3
|
+
decide done PLAN.md + PROGRESS.md ll-state block
|
|
4
|
+
phase-05 done ROADMAP row: DONE (docs/history/v1.0)
|
|
5
|
+
phase-06 done ROADMAP row: DONE (docs/history/v1.0)
|
|
6
|
+
phase-07 half epilogue over a board with M2, M3 not passing
|
|
7
|
+
phase-08 todo ROADMAP row: PLANNED
|
|
8
|
+
verify-05 todo no phases/05/VERIFICATION.md
|
|
9
|
+
verify-06 todo no phases/06/VERIFICATION.md
|
|
10
|
+
verify-07 todo no phases/07/VERIFICATION.md
|
|
11
|
+
verify-08 todo no phases/08/VERIFICATION.md
|
|
12
|
+
close todo no docs/DELIVERY.md
|
|
13
|
+
|
|
14
|
+
1. phase-07 ll-implement 07 --no-talk
|
|
15
|
+
2. phase-08 ll-implement 08 --no-talk
|
|
16
|
+
3. close ll-close --no-talk
|
|
17
|
+
|
|
18
|
+
Dry run: the roteiro above is the plan; nothing was written.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
docs/GOAL.md written and committed (mode: autonomous, phase: all). Paste this text into the
|
|
2
|
+
unattended run:
|
|
3
|
+
|
|
4
|
+
/goal Deliver what ROADMAP.md still owes — phases 07 and 08 — to main, tested, per PLAN.md.
|
|
5
|
+
|
|
6
|
+
DONE WHEN: docs/DELIVERY.md exists; PROGRESS.md carries ## Epilogue — phase 08; phases/07 and
|
|
7
|
+
phases/08 VERIFICATION.md say APPROVED or APPROVED_WITH_RESERVATIONS; docs/AUTO.md has every roteiro
|
|
8
|
+
row done or skipped and ## Decisions taken alone filled; `npm test` exit 0; `git status --porcelain`
|
|
9
|
+
empty — each pasted here as its last output line. Or stop after 80 turns, saying what is missing.
|
|
10
|
+
|
|
11
|
+
READ FIRST: PLAN.md (§0, §2, §3, §7), ROADMAP.md phases 07 and 08, docs/AUTO.md when it exists.
|
|
12
|
+
|
|
13
|
+
INVALIDATING: deleting, weakening, skipping or marking as skip any test, acceptance or threshold;
|
|
14
|
+
self-validation instead of a clean-context verifier; a TODO or "phase 2" left in a milestone marked
|
|
15
|
+
done; partial delivery counted as done. Impossibility without an implemented alternative does not
|
|
16
|
+
complete the goal.
|
|
17
|
+
|
|
18
|
+
EXECUTION: skill ll-auto --auto-decision --verify all, started again from this text whenever the
|
|
19
|
+
session stops before DONE WHEN. Models per role from PLAN.md §7.
|
|
20
|
+
|
|
21
|
+
DECISIONS: everything that stays inside the repository is decided, recorded [decided by absence —
|
|
22
|
+
revisable] and listed at the end; money, production data and credentials never proceed alone.
|
|
23
|
+
|
|
24
|
+
STATE: docs/AUTO.md one log line per stage; PROGRESS.md one block per wave.
|
|
25
|
+
|
|
26
|
+
STOP: external block (key, host, rate limit, an answer only the owner has) = record the state in
|
|
27
|
+
PROGRESS.md and STOP without marking done.
|
|
28
|
+
|
|
29
|
+
▶ Next — `/clear` then paste the text above into the unattended run.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ll-fake
|
|
3
|
+
description: >
|
|
4
|
+
Pretends to describe a skill in a folded scalar.
|
|
5
|
+
|
|
6
|
+
The blank line above keeps a newline inside the value, which rule 1 must reject.
|
|
7
|
+
argument-hint: "[none]"
|
|
8
|
+
disable-model-invocation: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Folded description
|
|
12
|
+
|
|
13
|
+
Fixture for lint-prompts rule 1: the description is not one line.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ll-fake
|
|
3
|
+
description: Pretends to be a manual skill while the frontmatter leaves the model free to invoke it, which rule 1 must reject.
|
|
4
|
+
argument-hint: "[none]"
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Model invocation left open
|
|
9
|
+
|
|
10
|
+
Fixture for lint-prompts rule 1: disable-model-invocation is declared false.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ll-bad
|
|
3
|
+
description: Fixture for lint-contract rule 6 — handoff lines that the Next grammar must reject, one break per line.
|
|
4
|
+
argument-hint: "[none]"
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Bad handoffs
|
|
9
|
+
|
|
10
|
+
Each line below breaks the grammar in one way, so rule 6 must print one FAIL for each.
|
|
11
|
+
|
|
12
|
+
Old shape, backticks around /clear and around a skill that does exist:
|
|
13
|
+
|
|
14
|
+
▶ Next — `/clear` then `ll-bad`
|
|
15
|
+
|
|
16
|
+
Bare command, no `/clear, then` opening:
|
|
17
|
+
|
|
18
|
+
▶ Next — ll-bad
|
|
19
|
+
|
|
20
|
+
Right grammar, command that names no skill in this tree:
|
|
21
|
+
|
|
22
|
+
▶ Next — /clear, then ll-nope
|
|
23
|
+
|
|
24
|
+
Right grammar, but the same skill twice outside a parenthetical:
|
|
25
|
+
|
|
26
|
+
▶ Next — /clear, then ll-bad or ll-bad --resume
|
|
27
|
+
|
|
28
|
+
Same grammar, two different skills to choose between, still outside a parenthetical:
|
|
29
|
+
|
|
30
|
+
▶ Next — /clear, then ll-bad or ll-nope --resume
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ll-good
|
|
3
|
+
description: Fixture for lint-contract rule 6 — one line per allowed form of the Next grammar.
|
|
4
|
+
argument-hint: "[none]"
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Good handoffs
|
|
9
|
+
|
|
10
|
+
Plain command:
|
|
11
|
+
|
|
12
|
+
▶ Next — /clear, then ll-good
|
|
13
|
+
|
|
14
|
+
Arguments, with the alternatives inside one parenthetical:
|
|
15
|
+
|
|
16
|
+
▶ Next — /clear, then ll-good 3 --wave 2 (or ll-good --resume)
|
|
17
|
+
|
|
18
|
+
The /goal target, followed by text:
|
|
19
|
+
|
|
20
|
+
▶ Next — /clear, then /goal <text>
|
|
21
|
+
|
|
22
|
+
A placeholder in angle brackets, when the epilogue names the command:
|
|
23
|
+
|
|
24
|
+
▶ Next — /clear, then <the command the epilogue names>
|
|
25
|
+
|
|
26
|
+
Wrapped in backticks inside prose: the epilogue ends with `▶ Next — /clear, then ll-good --resume` and nothing follows it.
|
|
@@ -50,8 +50,12 @@ not_verified: backoff under real network latency
|
|
|
50
50
|
|
|
51
51
|
- SC-03 load under 10k rows · `ll-verify --criterion SC-03` · born phase 05
|
|
52
52
|
|
|
53
|
+
- [2026-01-05T10:00:00Z] owner: pode ir
|
|
54
|
+
- [2026-01-05T11:00:00Z] owner: troca o nome da coluna
|
|
55
|
+
|
|
53
56
|
## Epilogue — phase 07 — 2026-09-09
|
|
54
57
|
|
|
55
58
|
passed: M1 · left: M2 (acceptance red), M3 (BLOCKED: DEC-0041) · WAITING: DEC-0041 (cents rounding) ·
|
|
56
59
|
new backlog: B-014, B-015 · actions that need you: decide DEC-0041 before wave 3
|
|
60
|
+
milestones passed 2/3 · questions asked 3 / assumptions 1 (ASM-1) / band-1 open 0 · amendments 1 · verification: phases/07/VERIFICATION.md APPROVED
|
|
57
61
|
▶ Next — `/clear`, then `ll-implement 8`
|