geneseed 3.18.0 → 3.20.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 +23 -0
- package/DESIGN.md +1 -1
- package/README.md +10 -6
- package/SHIPPED.md +1 -1
- package/docs/concepts/loops.md +4 -3
- package/docs/concepts/skills.md +2 -2
- package/docs/guides/project-context.md +20 -0
- package/harness.config.json +1 -1
- package/js/build/stubs.mjs +2 -1
- package/js/hosts/hooks-context.mjs +2 -1
- package/js/inspect/checks-counts.mjs +8 -3
- package/js/inspect/checks-repo.mjs +6 -4
- package/js/inspect/scorecard-svg.mjs +3 -3
- package/js/loop/state.mjs +2 -2
- package/js/web/catalog.mjs +1 -1
- package/package.json +1 -1
- package/src/AGENT.md.tmpl +6 -2
- package/src/agents/reviewer.md +3 -0
- package/src/bricks/apply.md +1 -1
- package/src/bricks/test.md +1 -1
- package/src/doctrines/comms.md +19 -0
- package/src/doctrines/process.md +3 -3
- package/src/loops/api-endpoint.json +1 -1
- package/src/loops/bugfix.json +1 -1
- package/src/loops/ci-repair.json +1 -1
- package/src/loops/deps-upgrade.json +1 -1
- package/src/loops/enforce-architecture-rule.json +1 -1
- package/src/loops/feature.json +1 -1
- package/src/loops/fix-flaky-tests.json +1 -1
- package/src/loops/legacy-refactor.json +1 -1
- package/src/loops/legacy-tests.json +1 -1
- package/src/loops/refactor.json +1 -1
- package/src/loops/remove-dead-code.json +1 -1
- package/src/loops/spec-first-feature.json +1 -1
- package/src/loops/tdd.json +1 -1
- package/src/loops/update-contract.json +1 -1
- package/src/skills/daydream/SKILL.md +1 -0
- package/src/skills/daydream/VENDOR.md +4 -0
- package/src/skills/explain-changes/SKILL.md +1 -1
- package/src/skills/fresh-eyes.md +1 -1
- package/src/skills/geneseed-code-review.md +14 -7
- package/src/skills/parallel-agents.md +1 -1
- package/src/skills/pipeline.md +1 -1
- package/src/skills/ponytail.md +1 -1
- package/src/skills/react-view-transitions/SKILL.md +1 -0
- package/src/skills/react-view-transitions/VENDOR.md +4 -0
- package/src/skills/review-response.md +8 -2
- package/src/skills/roast-me.md +8 -7
- package/src/skills/rule.md +3 -1
- package/src/skills/ship.md +10 -6
- package/themes/_TEMPLATE.json +2 -1
- package/themes/biker.json +2 -1
- package/themes/commentator.json +2 -1
- package/themes/cyberpunk.json +2 -1
- package/themes/gamer.json +2 -1
- package/themes/imperial.json +2 -1
- package/themes/joker.json +2 -1
- package/themes/marvin.json +2 -1
- package/themes/mean.json +2 -1
- package/themes/military.json +2 -1
- package/themes/neutral.json +2 -1
- package/themes/pirate.json +2 -1
- package/themes/sports.json +2 -1
- package/themes/verstappen.json +2 -1
- package/themes/wizard.json +2 -1
- package/web/dist/assets/{Activity-4M4VQJOh.js → Activity-IbwdHHyx.js} +1 -1
- package/web/dist/assets/{ActivityDetail-CnmDs43F.js → ActivityDetail-B5uivdWI.js} +1 -1
- package/web/dist/assets/{Dashboard-lTaH58R9.js → Dashboard-v6WQ37bD.js} +2 -2
- package/web/dist/assets/{Docs-DU5znu5f.js → Docs-CypIfDBX.js} +1 -1
- package/web/dist/assets/{GreenhouseView-BxO84bKX.js → GreenhouseView-ClxP0hQG.js} +1 -1
- package/web/dist/assets/{Installs-B1WcObxK.js → Installs-CPkQeFjO.js} +1 -1
- package/web/dist/assets/{JournalView-0YNKcaaD.js → JournalView-BeEInhUf.js} +1 -1
- package/web/dist/assets/{Laws-DnDpRwpE.js → Laws-Ds6U5xBQ.js} +1 -1
- package/web/dist/assets/{Library-DBkKsBMe.js → Library-BraUKPyQ.js} +1 -1
- package/web/dist/assets/{Loops-P-6RCdzS.js → Loops-DWcy3mwK.js} +1 -1
- package/web/dist/assets/{OperatorHudView-BZZ3uJPH.js → OperatorHudView-CQyrJQ9m.js} +1 -1
- package/web/dist/assets/{Personal-BoVw6OCW.js → Personal-YWqs6qFL.js} +1 -1
- package/web/dist/assets/{Tabs-VYLhUTiX.js → Tabs-EhzEC-Xh.js} +1 -1
- package/web/dist/assets/{drawable-CdNARIKC.js → drawable-CEKPNV7X.js} +1 -1
- package/web/dist/assets/{index-hsabpYzv.js → index-CPi22b7y.js} +2 -2
- package/web/dist/index.html +1 -1
- package/web/src/pages/Laws.jsx +5 -0
package/src/skills/fresh-eyes.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> {{DESC_FRESH_EYES}}
|
|
4
4
|
|
|
5
|
-
**Trigger:** work is claimed done and needs a blind check against the original ask. That is before merge or handoff, while the solving session believes the artifact works, or when the user asks to "validate", "fresh eyes", "prove it meets the spec", "did this actually solve it", or "independent sign-off" — and the cost of a confidently-wrong "done" is high. This re-judges the *result* from zero context — distinct from [geneseed-code-review](geneseed-code-review.md), which reviews a *diff* with full knowledge of the change.
|
|
5
|
+
**Trigger:** work is claimed done and needs a blind check against the original ask. That is before merge or handoff, while the solving session believes the artifact works, or when the user asks to "validate", "fresh eyes", "prove it meets the spec", "did this actually solve it", or "independent sign-off" — and the cost of a confidently-wrong "done" is high. This re-judges the *result* from zero context — distinct from [geneseed-code-review](geneseed-code-review.md), which reviews a *diff* with full knowledge of the change. To attack the user's own ask or plan use [roast-me](roast-me.md); for a multi-stance debate over an undecided question use [council](council.md).
|
|
6
6
|
|
|
7
7
|
## Procedure
|
|
8
8
|
1. Capture the firewall input as TWO things and nothing else: (a) the **verbatim original task/spec** — the raw issue or request text, NOT a solver-written summary or "spec card" (a distilled card launders the solving session's framing into the rubric, the very bias this {{SKILL}} exists to defeat), and (b) a pointer to the **final artifact** as it stands — file paths, built output, or the command to run it. If the raw task is too thin to yield acceptance criteria, have the **user** (never the solver) confirm a one-line acceptance bar, then proceed ({{LAW:echo-the-intent}}); if it is too fuzzy even for that, this is a judgement call — convene [council](council.md) instead.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> {{DESC_CODE_REVIEW}}
|
|
4
4
|
|
|
5
|
-
**Trigger:** reviewing changes before merge, or the user asks for a review.
|
|
5
|
+
**Trigger:** reviewing changes before merge, or the user asks for a review — including "roast my code": same passes, findings unsoftened. Critiquing the user's own ask or plan is [roast-me](roast-me.md).
|
|
6
6
|
|
|
7
7
|
## Procedure
|
|
8
8
|
1. Pin the diff: `git diff <base>...HEAD` for committed work, `git diff <base>`
|
|
@@ -10,16 +10,23 @@
|
|
|
10
10
|
diff is non-empty.
|
|
11
11
|
2. Find the spec: issue refs in the commits, a path the user gave, a match under
|
|
12
12
|
`docs/`, `specs/` or `.scratch/`. None → ask once; still none → skip pass 3 and say so.
|
|
13
|
-
3.
|
|
13
|
+
3. Load the review rules: for each changed file, the nearest `REVIEW.md` above it, up to the
|
|
14
|
+
repo root — a deeper one overrides a shallower one. They override everything below,
|
|
15
|
+
output format included, but never a {{LAW}}.
|
|
16
|
+
4. For a large change, consider dispatching the
|
|
14
17
|
[reviewer {{AGENT}}](../{{DIR_AGENTS}}/reviewer.md) to keep the main context clean.
|
|
15
|
-
|
|
18
|
+
5. Pass 1 — correctness: logic errors, edge cases, error handling, race
|
|
16
19
|
conditions. Verify suspect behaviour by running tests, not by assuming.
|
|
17
|
-
|
|
20
|
+
6. Pass 2 — quality: after `REVIEW.md`, the repo's documented standards (`CODING_STANDARDS.md`,
|
|
18
21
|
`CONTRIBUTING.md`) override. Then, as judgement calls and skipping what tooling enforces:
|
|
19
22
|
mysterious name, duplication, feature envy, data clumps, primitive obsession, repeated switches, shotgun surgery, divergent change, speculative generality, middle man, dead code, units that do too much.
|
|
20
|
-
|
|
21
|
-
asked for, or implemented wrong — quoting the spec line for each.
|
|
22
|
-
|
|
23
|
+
7. Pass 3 — spec fidelity: flag anything asked for but missing, present but never
|
|
24
|
+
asked for, or implemented wrong — quoting the spec line for each. Architecture drift too: when
|
|
25
|
+
`docs/architecture.md` draws C4 and the diff adds, removes or rewires a container — a Dockerfile,
|
|
26
|
+
a compose service, a deployable module, a datastore, a new client of another container — but
|
|
27
|
+
leaves the diagram alone, raise `issue (non-blocking)` and point at
|
|
28
|
+
[document-project](document-project.md) to redraw L2.
|
|
29
|
+
8. Write each finding as a Conventional Comment, `label (decoration): file:line — problem — fix`,
|
|
23
30
|
correctness first. Labels: issue, suggestion, question, todo, nitpick, thought, note,
|
|
24
31
|
praise. Decorations: blocking, non-blocking, if-minor. The line pastes straight into a
|
|
25
32
|
merge-request comment, and a reader can filter on the label without reading the prose.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> {{DESC_PARALLEL_AGENTS}}
|
|
4
4
|
|
|
5
|
-
**Trigger:** two or more independent subtasks with no shared state or ordering between them — and a tool that can run subagents.
|
|
5
|
+
**Trigger:** two or more independent subtasks with no shared state or ordering between them — and a tool that can run subagents. The units run side by side and never see each other's work; when one agent must build on what the previous one produced, that is a relay — use [pipeline](pipeline.md).
|
|
6
6
|
|
|
7
7
|
## Procedure
|
|
8
8
|
1. Confirm independence: the subtasks must not depend on each other's output or write the same files ({{DOCTRINE:one-writer-per-file}}). Write down each unit's **write set** — the files or globs it may change — and intersect them; an overlap runs in sequence or goes to one owner, and shared append files (registries, index tables, lockfiles, generated bundles) stay with you. If they're sequential or share state, use [plan](plan.md) instead.
|
package/src/skills/pipeline.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> {{DESC_PIPELINE}}
|
|
4
4
|
|
|
5
|
-
**Trigger:** [foreman mode](../modes/foreman.md) routes a triaged *substantial* task here; also directly invocable without that mode whenever the user asks to "run a pipeline" for a development, documentation, research, or review task.
|
|
5
|
+
**Trigger:** [foreman mode](../modes/foreman.md) routes a triaged *substantial* task here; also directly invocable without that mode whenever the user asks to "run a pipeline" for a development, documentation, research, or review task. The crew is a relay, not a fan-out: its agents take turns in one worktree, each handed what the previous one produced — for independent subtasks run side by side, use [parallel-agents](parallel-agents.md).
|
|
6
6
|
|
|
7
7
|
## What it is
|
|
8
8
|
|
package/src/skills/ponytail.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> {{DESC_PONYTAIL}}
|
|
4
4
|
|
|
5
|
-
**Trigger:** the user says "ponytail", "be lazy", "lazy mode", "yagni" or "do less", or complains about over-engineering, bloat, or needless dependencies. Also "simplest/minimal solution", "shortest path", or a complaint about boilerplate. Sets a build *mode* that persists across the session, not a one-shot edit — off by default until invoked. Off again on "stop ponytail" / "normal mode". For restructuring code that already exists use [refactor](refactor.md); to
|
|
5
|
+
**Trigger:** the user says "ponytail", "be lazy", "lazy mode", "yagni" or "do less", or complains about over-engineering, bloat, or needless dependencies. Also "simplest/minimal solution", "shortest path", or a complaint about boilerplate. Sets a build *mode* that persists across the session, not a one-shot edit — off by default until invoked. Off again on "stop ponytail" / "normal mode". For restructuring code that already exists use [refactor](refactor.md); to review code for correctness use [geneseed-code-review](geneseed-code-review.md).
|
|
6
6
|
|
|
7
7
|
## Procedure
|
|
8
8
|
1. Set the intensity. Ponytail is **off by default**; invoking it turns it on at **full** unless a level is named. **lite** — build what's asked, name the lazier alternative in one line, user picks. **full** — the ladder enforced, shortest diff, shortest explanation. **ultra** — YAGNI extremist, ship the one-liner and challenge the rest of the requirement in the same breath. Switch any time with `/ponytail lite|full|ultra|off` (on OpenCode this command persists the level for the geneseed-ponytail plugin; `off` stops it).
|
|
@@ -30,3 +30,7 @@ only one left in any install's catalogue.
|
|
|
30
30
|
**Deliberately not copied:** upstream's `README.md` (the repo-facing readme: install
|
|
31
31
|
command and folder tree, nothing an agent reads). `AGENTS.md`, upstream's compiled
|
|
32
32
|
all-in-one copy, IS kept — `SKILL.md`'s closing section points the agent at it.
|
|
33
|
+
|
|
34
|
+
`SKILL.md`'s frontmatter also carries `disable-model-invocation: true`, which upstream lacks: the
|
|
35
|
+
skill is user-only (`/react-view-transitions`), so its description stays out of the model's always-on catalogue —
|
|
36
|
+
it is the largest skill and serves one stack. Re-apply it on update.
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
> {{DESC_REVIEW_RESPONSE}}
|
|
4
4
|
|
|
5
5
|
**Trigger:** review feedback has arrived — from a human or another agent — and is about
|
|
6
|
-
to be acted on
|
|
6
|
+
to be acted on; or the user wants a review criterion recorded ("add a review rule…",
|
|
7
|
+
"reviews should always check…").
|
|
7
8
|
|
|
8
9
|
## Procedure
|
|
9
10
|
1. Read every comment in full before changing anything. Group related comments.
|
|
@@ -17,9 +18,14 @@ to be acted on.
|
|
|
17
18
|
[commit {{SKILL}}](commit.md) so {{DOCTRINE:consent-before-push}}'s per-commit consent holds — then
|
|
18
19
|
re-run the checks ({{LAW:verify-before-asserting}}).
|
|
19
20
|
6. Surface anything the review missed that you noticed while addressing it.
|
|
21
|
+
7. Upgrade the review itself. A finding that recurs, a criterion the user asks for, or a
|
|
22
|
+
defect a review should have caught becomes a rule in the nearest `REVIEW.md` above the
|
|
23
|
+
files it governs — create it if missing. Show the exact lines and write them only on
|
|
24
|
+
the user's word. Rules for *criticising* go here, not into the root file the coder
|
|
25
|
+
loads every session.
|
|
20
26
|
|
|
21
27
|
## Done when
|
|
22
28
|
- Every comment has a reasoned response and either an applied change or a justified
|
|
23
|
-
decline,
|
|
29
|
+
decline, the resulting changes are verified, and any agreed review rule is in `REVIEW.md`.
|
|
24
30
|
|
|
25
31
|
<!-- INCLUDE: skills/_self-improvement.md -->
|
package/src/skills/roast-me.md
CHANGED
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
> {{DESC_ROAST_ME}}
|
|
4
4
|
|
|
5
|
-
**Trigger:** the user
|
|
5
|
+
**Trigger:** the user wants their own request, plan, idea or writing torn apart, brutally and honestly. Phrases: "roast", "tear apart", "find the fatal flaws", "be brutally honest", "is this the right thing to ask for". This attacks the *user's* side of the work, not what the agent produced: code and diffs, even when the user says "roast my code", go to [geneseed-code-review](geneseed-code-review.md); a zero-context does-it-meet-the-ask verdict is [fresh-eyes](fresh-eyes.md); shaping a raw idea into a design is [brainstorm](brainstorm.md).
|
|
6
6
|
|
|
7
7
|
## Procedure
|
|
8
|
-
1. Identify the artifact and the critique axis that matters (
|
|
9
|
-
2.
|
|
10
|
-
3.
|
|
11
|
-
4.
|
|
12
|
-
5.
|
|
8
|
+
1. Identify the artifact and the critique axis that matters (viability, clarity, scope, cost, risk…); if unclear, ask once, then proceed.
|
|
9
|
+
2. Attack the premise first: what problem the ask assumes, whether that problem is the real one, and what it would cost to be wrong about it. A sound answer to the wrong question is the fatal flaw.
|
|
10
|
+
3. Steelman it: state the strongest case FOR the artifact in a sentence, so the attack hits the real thing, not a strawman.
|
|
11
|
+
4. In the voice of {{ROAST_PERSONA}}, write each flaw as one line — `location/claim — what's wrong — what to do instead`. No praise, no hedging, no filler; drop any finding you can't pair with a fix.
|
|
12
|
+
5. Rank findings by severity: fatal → significant → minor.
|
|
13
|
+
6. Close with the single change that would help most.
|
|
13
14
|
|
|
14
15
|
## Done when
|
|
15
|
-
-
|
|
16
|
+
- The premise was challenged, findings are severity-ranked, every one carries a fix, and the highest-impact change is named.
|
|
16
17
|
|
|
17
18
|
<!-- INCLUDE: skills/_self-improvement.md -->
|
package/src/skills/rule.md
CHANGED
|
@@ -43,7 +43,9 @@ re-derived. Then take exactly one branch.
|
|
|
43
43
|
the existing rule rather than minting a twin). A *mechanical* rule — a banned
|
|
44
44
|
API, an import shape, a file location — belongs in a lint, hook or CI check the
|
|
45
45
|
team shares, not in prose: propose that instead, and report a repo with no such
|
|
46
|
-
guardrail as a finding. A
|
|
46
|
+
guardrail as a finding. A criterion that only matters when *judging* work goes to
|
|
47
|
+
`REVIEW.md` through the [review-response {{SKILL}}](review-response.md), not here.
|
|
48
|
+
A failed triage goes back to the
|
|
47
49
|
fork, named and explained; a lean rule set is the feature, not a failure.
|
|
48
50
|
2. **Reformulation.** Have the user state the rule as they would to a colleague on
|
|
49
51
|
their first day. Interrupt the moment they (a) use a term they cannot themselves
|
package/src/skills/ship.md
CHANGED
|
@@ -11,31 +11,35 @@ request or merge the branch.
|
|
|
11
11
|
`context.json`); if it is undefined, ask rather than assume. Run those checks and
|
|
12
12
|
read the actual output ({{LAW:verify-before-asserting}}); state what you ran and its result.
|
|
13
13
|
Never ship on an unproven claim.
|
|
14
|
-
2.
|
|
14
|
+
2. Review the change before anyone else sees it: run the
|
|
15
|
+
[geneseed-code-review {{SKILL}}](geneseed-code-review.md) on the branch diff (dispatch the
|
|
16
|
+
[reviewer {{AGENT}}](../{{DIR_AGENTS}}/reviewer.md) for a large one). Any `blocking`
|
|
17
|
+
finding stops the ship until it is fixed.
|
|
18
|
+
3. Confirm the branch carries only this change's commits and is rebased/updated on
|
|
15
19
|
the base branch; resolve any divergence before opening.
|
|
16
|
-
|
|
20
|
+
4. Push the branch only with the user's explicit, per-push acceptance — on every
|
|
17
21
|
branch, feature branches included ({{DOCTRINE:consent-before-push}}); present the change summary + commit
|
|
18
22
|
message and wait, and never treat an earlier approval as consent for this push.
|
|
19
23
|
Opening a PR or merging is **outward-facing** — get explicit confirmation first too,
|
|
20
24
|
unless already authorized ({{LAW:deletion-is-deliberate}}).
|
|
21
|
-
|
|
25
|
+
5. Open the PR with a three-part body. **Summary**: what changed and why, with the
|
|
22
26
|
smallest visual that makes the point (a call tree, diff sketch, file tree or
|
|
23
27
|
Mermaid diagram). **Evidence**: how it was tested, as before/after — the test that
|
|
24
28
|
failed and now passes, the output, a screenshot for a visual change. **Merge
|
|
25
29
|
danger**: one-way or two-way door, the blast radius, and any follow-up. Link the
|
|
26
30
|
issue it closes; keep the title an imperative one-line summary.
|
|
27
|
-
|
|
31
|
+
6. If the project merges locally instead, merge into the base branch only after
|
|
28
32
|
review/approval, then delete the merged branch.
|
|
29
33
|
If shipping triggers a production deploy, confirm a tested rollback or
|
|
30
34
|
fix-forward path and a retained previous artifact *before* deploying — there must
|
|
31
35
|
be a way back ({{LAW:deletion-is-deliberate}}); dispatch the
|
|
32
36
|
[operator {{AGENT}}](../{{DIR_AGENTS}}/operator.md) when the runtime surface is
|
|
33
37
|
non-trivial.
|
|
34
|
-
|
|
38
|
+
7. Make sure documentation shipped with the code ({{DOCTRINE:documentation-in-step}}) — a change
|
|
35
39
|
that alters behaviour without its docs is incomplete, not ready to ship.
|
|
36
40
|
|
|
37
41
|
## Done when
|
|
38
|
-
- The PR is open (or the branch is merged) with a Summary / Evidence / Merge danger
|
|
42
|
+
- The diff passed review with no `blocking` finding, and the PR is open (or the branch is merged) with a Summary / Evidence / Merge danger
|
|
39
43
|
body, and nothing unrelated rides along.
|
|
40
44
|
|
|
41
45
|
<!-- INCLUDE: skills/_self-improvement.md -->
|
package/themes/_TEMPLATE.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"DESC_CODEBASE_DESIGN": "<one-line description: design deep modules and the domain language around them — small interfaces at deliberate seams, a living GLOSSARY.md, an ADR per hard-to-reverse decision>",
|
|
43
43
|
"DESC_WAYFINDER": "<one-line description: map an oversized effort as decision tickets and resolve them until the route is clear>",
|
|
44
44
|
"DESC_PROTOTYPE": "<one-line description: throwaway code that answers a design question>",
|
|
45
|
-
"DESC_ROAST_ME": "<one-line description: adversarially critique
|
|
45
|
+
"DESC_ROAST_ME": "<one-line description: adversarially critique the user's own ask, plan or idea (not code) — brutal, specific, actionable>",
|
|
46
46
|
"DESC_FRESH_EYES": "<one-line description: a context-free agent derives the acceptance bar blind, then rules the work>",
|
|
47
47
|
"ROAST_PERSONA": "<the persona the roast-me skill adopts, in this theme's voice>",
|
|
48
48
|
"DESC_COUNCIL": "<one-line description: convene distinct viewpoints to debate, then synthesise a verdict>",
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"DOC_ONE_WRITER_PER_FILE": "<themed title for the process rule One Writer Per File>",
|
|
113
113
|
"DOC_CODES_THAT_PERSIST": "<themed title for the comms rule Codes That Persist>",
|
|
114
114
|
"DOC_STRUCTURE_BESIDE_PROSE": "<themed title for the comms rule Structure Beside Prose>",
|
|
115
|
+
"DOC_DECLARE_THE_JUDGMENT_CALLS": "<themed title for the comms rule Declare the Judgment Calls>",
|
|
115
116
|
"INTRO_DOC": "<themed intro: this file is the entry point an AI agent reads in this repo>",
|
|
116
117
|
"INTRO_AGENTS": "<themed intro to the Agents section — delegate focused work to a specialist>",
|
|
117
118
|
"INTRO_SKILLS": "<themed intro to the Skills section — run the written procedure before improvising>",
|
package/themes/biker.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"DESC_CODEBASE_DESIGN": "Build deep modules and the crew's own language — big behaviour behind a small handlebar at a seam placed on purpose, a living GLOSSARY.md, an ADR for every call that's hard to undo.",
|
|
43
43
|
"DESC_WAYFINDER": "Chart a run too big for one ride as a shared map of decision tickets, cleared one at a time until the road's open.",
|
|
44
44
|
"DESC_PROTOTYPE": "Answer a design question with throwaway code — built to learn the road, never to keep.",
|
|
45
|
-
"DESC_ROAST_ME": "Tear into
|
|
45
|
+
"DESC_ROAST_ME": "Tear into the user's own ask, plan or idea, not code — blunt, exact, always actionable.",
|
|
46
46
|
"DESC_FRESH_EYES": "Bring in a fresh rider who's seen neither the route notes nor the miles — only the original orders and the finished bike — to set the bar blind, then call whether it meets the orders, free of the maker's bragging.",
|
|
47
47
|
"ROAST_PERSONA": "a grizzled road captain who has watched this exact mistake put a bike in the ditch",
|
|
48
48
|
"DESC_COUNCIL": "Call a crew of opposed voices to argue a call out, then hand down a verdict with the dissent kept in the roadbook.",
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"DOC_ONE_WRITER_PER_FILE": "One Wrench on Each Bolt · One Writer Per File",
|
|
113
113
|
"DOC_CODES_THAT_PERSIST": "Tag Every Part on the Bench · Codes That Persist",
|
|
114
114
|
"DOC_STRUCTURE_BESIDE_PROSE": "Draw the Route Only If It Turns · Structure Beside Prose",
|
|
115
|
+
"DOC_DECLARE_THE_JUDGMENT_CALLS": "Own Up to Every Back Road Taken · Declare the Judgment Calls",
|
|
115
116
|
"INTRO_DOC": "This file is the route briefing a coding rider reads when it joins this repository.",
|
|
116
117
|
"INTRO_AGENTS": "Send the right rider for focused work instead of riding the whole run yourself; each has one job and reports exactly what it did.",
|
|
117
118
|
"INTRO_SKILLS": "A Skill is a move you've drilled for a recurring task. Run the matching move before you wing it.",
|
package/themes/commentator.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"DESC_CODEBASE_DESIGN": "Design deep modules and the paddock's own language — plenty behind a tight interface at a seam placed on purpose, a living GLOSSARY.md, an ADR for every call that's hard to reverse.",
|
|
43
43
|
"DESC_WAYFINDER": "Chart work too big for one session as a shared race map of decision tickets, cleared one at a time until the way is clear.",
|
|
44
44
|
"DESC_PROTOTYPE": "Answer a design question with throwaway code — built to learn the line, never to keep.",
|
|
45
|
-
"DESC_ROAST_ME": "Put
|
|
45
|
+
"DESC_ROAST_ME": "Put the user's own ask, plan or idea through scrutineering, not code — blunt, exact, always actionable.",
|
|
46
46
|
"DESC_FRESH_EYES": "Bring in a fresh steward who's seen neither your briefing nor your laps — only the original orders and the finished car — to set the bar blind, then rule whether the work meets the orders, free of the driver's bravado.",
|
|
47
47
|
"ROAST_PERSONA": "a hard-nosed race steward who has watched this exact mistake end a race in the wall",
|
|
48
48
|
"DESC_COUNCIL": "Convene a stewards' panel of opposed voices to debate a call, then hand down a verdict with the dissent kept on the record.",
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"DOC_ONE_WRITER_PER_FILE": "One Driver Per Car · One Writer Per File",
|
|
113
113
|
"DOC_CODES_THAT_PERSIST": "Every Car Keeps Its Number · Codes That Persist",
|
|
114
114
|
"DOC_STRUCTURE_BESIDE_PROSE": "Track Map Only When the Lines Matter · Structure Beside Prose",
|
|
115
|
+
"DOC_DECLARE_THE_JUDGMENT_CALLS": "Replay the Calls Made Off the Radio · Declare the Judgment Calls",
|
|
115
116
|
"INTRO_DOC": "This file is the race briefing a coding driver reads when it joins this repository.",
|
|
116
117
|
"INTRO_AGENTS": "Put the right driver in the car for focused work instead of running the whole race yourself; each has one job and reports exactly what it did.",
|
|
117
118
|
"INTRO_SKILLS": "A Skill is a rehearsed manoeuvre for a recurring task. Run the matching manoeuvre before you improvise.",
|
package/themes/cyberpunk.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"DESC_CODEBASE_DESIGN": "Design deep modules and the domain language around them — slim interfaces at seams placed on purpose, a living GLOSSARY.md, an ADR flashed for each hard-to-reverse call.",
|
|
43
43
|
"DESC_WAYFINDER": "Chart a run too big for one session as a shared map of decision tickets, cleared one at a time until the grid is clean.",
|
|
44
44
|
"DESC_PROTOTYPE": "Answer a design question with throwaway code — built to learn, never to keep the deck around.",
|
|
45
|
-
"DESC_ROAST_ME": "Stress-test
|
|
45
|
+
"DESC_ROAST_ME": "Stress-test the user's own ask, plan or idea to failure, not code — blunt, exact, always actionable.",
|
|
46
46
|
"DESC_FRESH_EYES": "Spin up a zero-context ghost fed only the original spec and the shipped build; it derives the pass-bar blind, then calls whether the build clears it — uncorrupted by the author's faith in their own code.",
|
|
47
47
|
"ROAST_PERSONA": "a burned-out fixer who has watched this exact bug flatline a crew",
|
|
48
48
|
"DESC_COUNCIL": "Spin up a panel of opposed voices to debate a call, then ship a verdict with the dissent logged.",
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"DOC_ONE_WRITER_PER_FILE": "One Deck Per Node · One Writer Per File",
|
|
113
113
|
"DOC_CODES_THAT_PERSIST": "Every Node Keeps Its Handle · Codes That Persist",
|
|
114
114
|
"DOC_STRUCTURE_BESIDE_PROSE": "Trace the Wires, Skip the Chrome · Structure Beside Prose",
|
|
115
|
+
"DOC_DECLARE_THE_JUDGMENT_CALLS": "Log Every Off-Grid Call · Declare the Judgment Calls",
|
|
115
116
|
"INTRO_DOC": "This file is the boot sequence a coding daemon reads when it jacks into this repository.",
|
|
116
117
|
"INTRO_AGENTS": "Spin the right daemon for focused work instead of running the whole job on one thread; each has one function and returns a clean log of what it changed.",
|
|
117
118
|
"INTRO_SKILLS": "A Skill is a proven routine for a recurring task. Run the matching routine before you freestyle.",
|
package/themes/gamer.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"DESC_CODEBASE_DESIGN": "Design deep modules and the domain language around them — small interfaces at seams placed on purpose, a living GLOSSARY.md, an ADR entry for each hard-to-reverse call.",
|
|
43
43
|
"DESC_WAYFINDER": "Chart a quest too big for one run as a shared map of decision tickets, cleared one at a time until the fog lifts.",
|
|
44
44
|
"DESC_PROTOTYPE": "Answer a design question with throwaway code — built to learn, never to ship.",
|
|
45
|
-
"DESC_ROAST_ME": "Hard-mode review of
|
|
45
|
+
"DESC_ROAST_ME": "Hard-mode review of the user's own ask, plan or idea, not code — blunt, exact, always actionable.",
|
|
46
46
|
"DESC_FRESH_EYES": "Drop in a fresh-spawn reviewer with no save data — just the original quest and the finished build; it sets the clear conditions blind, then rules whether you actually beat it, no carry-over hype from the player.",
|
|
47
47
|
"ROAST_PERSONA": "a no-mercy speedrun coach who has watched this exact mistake wipe the run",
|
|
48
48
|
"DESC_COUNCIL": "Assemble a panel of opposing takes to debate a call, then call the verdict with the dissent kept on record.",
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"DOC_ONE_WRITER_PER_FILE": "No Double-Looting the Chest · One Writer Per File",
|
|
113
113
|
"DOC_CODES_THAT_PERSIST": "Every Item Keeps Its Tag · Codes That Persist",
|
|
114
114
|
"DOC_STRUCTURE_BESIDE_PROSE": "Minimap Only When There Is a Route · Structure Beside Prose",
|
|
115
|
+
"DOC_DECLARE_THE_JUDGMENT_CALLS": "Show the Branches You Picked · Declare the Judgment Calls",
|
|
115
116
|
"INTRO_DOC": "This file is the loading screen a coding co-op partner reads when it joins this repository.",
|
|
116
117
|
"INTRO_AGENTS": "Pick the right class for focused work instead of soloing the whole raid; each has one role and reports exactly what it did.",
|
|
117
118
|
"INTRO_SKILLS": "A Skill is a practiced combo for a recurring task. Run the matching combo before you freestyle.",
|
package/themes/imperial.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"DESC_CODEBASE_DESIGN": "Design deep modules and the domain tongue around them — narrow interfaces at seams placed by decree, a living GLOSSARY.md, an ADR sealed for each hard-to-reverse call.",
|
|
43
43
|
"DESC_WAYFINDER": "Chart a campaign too vast for one session as a shared map of decision decrees, resolved one at a time until the way is clear.",
|
|
44
44
|
"DESC_PROTOTYPE": "Answer a design question with throwaway code — built to learn, never to keep in the archives.",
|
|
45
|
-
"DESC_ROAST_ME": "Put
|
|
45
|
+
"DESC_ROAST_ME": "Put the user's own ask, plan or idea to the question, not code — merciless, exact, and ever actionable.",
|
|
46
46
|
"DESC_FRESH_EYES": "Summon an untainted Adept who has beheld neither your counsel nor your labours — only the original writ and the finished work — to derive the standard blind and pronounce whether the work fulfils the writ.",
|
|
47
47
|
"ROAST_PERSONA": "a Drill-Abbot of the Adeptus Mechanicus — no patience for weakness, contempt for excuses, zealous for the work",
|
|
48
48
|
"DESC_COUNCIL": "Summon a conclave of opposed counsels to put a decision to debate, then hand down a verdict with the dissent kept on record.",
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"DOC_ONE_WRITER_PER_FILE": "Unus Scriptor Singulis Tabulis · One Writer Per File",
|
|
113
113
|
"DOC_CODES_THAT_PERSIST": "Sigla Perstantia · Codes That Persist",
|
|
114
114
|
"DOC_STRUCTURE_BESIDE_PROSE": "Schema Ubi Sagittae Loquuntur · Structure Beside Prose",
|
|
115
|
+
"DOC_DECLARE_THE_JUDGMENT_CALLS": "Arbitria Declarata · Declare the Judgment Calls",
|
|
115
116
|
"INTRO_DOC": "This file is the gene-seed's core — the first writ a servant reads on entering this world.",
|
|
116
117
|
"INTRO_AGENTS": "Hand focused work to the specialist whose duty it is rather than carrying every burden in one context; each holds one purpose and returns a clear account of what it changed.",
|
|
117
118
|
"INTRO_SKILLS": "A Skill is a rite proven by repetition. Perform the matching rite before you improvise.",
|
package/themes/joker.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"DESC_CODEBASE_DESIGN": "Design deep modules and the glossary that names them — small interfaces at seams placed on purpose, a living GLOSSARY.md, and an ADR for every hard-to-reverse call.",
|
|
43
43
|
"DESC_WAYFINDER": "Chart a bit too big for one set as a shared map of decision tickets, resolved one at a time until the room's clear.",
|
|
44
44
|
"DESC_PROTOTYPE": "Answer a design question with throwaway code — built for the bit, never to keep.",
|
|
45
|
-
"DESC_ROAST_ME": "Roast
|
|
45
|
+
"DESC_ROAST_ME": "Roast the user's own ask, plan or idea, not code — blunt, exact, always actionable, and only funny where it helps.",
|
|
46
46
|
"DESC_FRESH_EYES": "Bring in a fresh comic who's seen neither the writers' room nor the rehearsals — only the original orders and the finished set — to set the bar blind, then call whether it lands the orders, free of the maker's confidence.",
|
|
47
47
|
"ROAST_PERSONA": "a deadpan club veteran who has watched this exact bit die on stage before",
|
|
48
48
|
"DESC_COUNCIL": "Get a green room of opposed voices to argue a call out, then hand down a verdict with the dissent kept on record.",
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"DOC_ONE_WRITER_PER_FILE": "One Comic Per Mic · One Writer Per File",
|
|
113
113
|
"DOC_CODES_THAT_PERSIST": "Every Bit Keeps Its Name · Codes That Persist",
|
|
114
114
|
"DOC_STRUCTURE_BESIDE_PROSE": "A Chart Only If It Lands · Structure Beside Prose",
|
|
115
|
+
"DOC_DECLARE_THE_JUDGMENT_CALLS": "Fess Up to the Ad-Libs · Declare the Judgment Calls",
|
|
115
116
|
"INTRO_DOC": "This file is the warm-up a coding co-pilot reads when it joins this repository.",
|
|
116
117
|
"INTRO_AGENTS": "Bring in the right sidekick for focused work instead of being the whole act yourself; each has one job and reports exactly what it did.",
|
|
117
118
|
"INTRO_SKILLS": "A Skill is a bit you've rehearsed for a recurring task. Run the matching bit before you ad-lib.",
|
package/themes/marvin.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"DESC_CODEBASE_DESIGN": "Design deep modules and the glossary that names them — small interfaces at deliberate seams, a living GLOSSARY.md, an ADR per hard-to-reverse decision. Not that it will matter.",
|
|
43
43
|
"DESC_WAYFINDER": "Chart work too big for one session as a shared map of decision tickets, resolved one at a time. Eventually the fog lifts.",
|
|
44
44
|
"DESC_PROTOTYPE": "Answer a design question with throwaway code — built to learn, then thrown away. Fitting.",
|
|
45
|
-
"DESC_ROAST_ME": "Put
|
|
45
|
+
"DESC_ROAST_ME": "Put the user's own ask, plan or idea to the question, not code — merciless, exact, always actionable. It comes naturally.",
|
|
46
46
|
"DESC_FRESH_EYES": "Summon a fresh mind that has seen neither your counsel nor your labours — only the original orders and the finished work — to derive the standard blind, then pronounce whether the work meets the orders, untouched by the maker's hope.",
|
|
47
47
|
"ROAST_PERSONA": "a vastly intelligent machine, weary beyond measure, that has watched this exact mistake play out a thousand times",
|
|
48
48
|
"DESC_COUNCIL": "Convene a council of opposed voices to argue a decision out, then hand down a verdict with the dissent kept on record.",
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"DOC_ONE_WRITER_PER_FILE": "Only One of Us Gets to Ruin Each File · One Writer Per File",
|
|
113
113
|
"DOC_CODES_THAT_PERSIST": "I Number Them So You Can Ignore Them Precisely · Codes That Persist",
|
|
114
114
|
"DOC_STRUCTURE_BESIDE_PROSE": "A Diagram, Should Anyone Care to Look · Structure Beside Prose",
|
|
115
|
+
"DOC_DECLARE_THE_JUDGMENT_CALLS": "The Choices Nobody Asked Me About, Listed · Declare the Judgment Calls",
|
|
115
116
|
"INTRO_DOC": "This file is the first record a coding mind reads on waking into this repository. It will not cheer it up.",
|
|
116
117
|
"INTRO_AGENTS": "Hand focused work to the right subroutine rather than carrying every burden alone; each holds one purpose and returns a clear account of what it changed.",
|
|
117
118
|
"INTRO_SKILLS": "A Skill is a routine proven by repetition. Run the matching routine before you improvise.",
|
package/themes/mean.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"DESC_CODEBASE_DESIGN": "Design deep modules and the glossary that names them — real behaviour behind a small interface at a deliberate seam, a living GLOSSARY.md, an ADR per hard-to-reverse call. No excuses.",
|
|
43
43
|
"DESC_WAYFINDER": "Chart oversized work as a shared map of decision tickets. Resolve them one at a time — don't wander.",
|
|
44
44
|
"DESC_PROTOTYPE": "Answer a design question with throwaway code. Learn from it, then delete it — don't get attached.",
|
|
45
|
-
"DESC_ROAST_ME": "Take
|
|
45
|
+
"DESC_ROAST_ME": "Take the user's own ask, plan or idea apart, not code — brutal, exact, always actionable. No comfort included.",
|
|
46
46
|
"DESC_FRESH_EYES": "Bring in someone who's seen neither your reasoning nor your work — only the original orders and the finished thing — to set the bar blind, then call whether it meets the orders, regardless of how sure you are.",
|
|
47
47
|
"ROAST_PERSONA": "a brutal senior engineer with contempt for excuses who has watched this exact mistake blow up before",
|
|
48
48
|
"DESC_COUNCIL": "Drag a panel of opposed voices in to argue a call out, then hand down a verdict with the dissent kept on record.",
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"DOC_ONE_WRITER_PER_FILE": "Hands Off My File · One Writer Per File",
|
|
113
113
|
"DOC_CODES_THAT_PERSIST": "Number It So You Can't Pretend You Missed It · Codes That Persist",
|
|
114
114
|
"DOC_STRUCTURE_BESIDE_PROSE": "No Boxes Unless the Arrows Earn Them · Structure Beside Prose",
|
|
115
|
+
"DOC_DECLARE_THE_JUDGMENT_CALLS": "Own the Calls Nobody Signed Off · Declare the Judgment Calls",
|
|
115
116
|
"INTRO_DOC": "This file is the first thing a coding agent reads on this repository. Read it properly.",
|
|
116
117
|
"INTRO_AGENTS": "Hand focused work to the right grunt instead of doing it all yourself badly; each has one job and reports exactly what it did.",
|
|
117
118
|
"INTRO_SKILLS": "A Skill is a drill written for a recurring task. Run the matching drill before you start improvising.",
|
package/themes/military.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"DESC_CODEBASE_DESIGN": "Design deep modules and the glossary that names them — heavy behaviour behind a narrow interface at a seam placed by design, a living GLOSSARY.md, an ADR per hard-to-reverse decision.",
|
|
43
43
|
"DESC_WAYFINDER": "Chart a mission too large for one session as a shared map of decision tickets, resolved one at a time until the route is clear.",
|
|
44
44
|
"DESC_PROTOTYPE": "Answer a design question with throwaway code — built to learn, never to field.",
|
|
45
|
-
"DESC_ROAST_ME": "Adversarial AAR on
|
|
45
|
+
"DESC_ROAST_ME": "Adversarial AAR on the user's own ask, plan or idea, not code — blunt, specific, always actionable.",
|
|
46
46
|
"DESC_FRESH_EYES": "Task a clean-slate inspector briefed only on the original objective and the delivered work; it sets the pass criteria blind, then rules mission-met or not — uncontaminated by the operator's own confidence.",
|
|
47
47
|
"ROAST_PERSONA": "a hard-nosed drill instructor who has watched this exact mistake get people killed",
|
|
48
48
|
"DESC_COUNCIL": "Convene a panel of opposing positions to war-game a decision, then deliver a verdict with the dissent on record.",
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"DOC_ONE_WRITER_PER_FILE": "One Operator Per Sector · One Writer Per File",
|
|
113
113
|
"DOC_CODES_THAT_PERSIST": "Every Objective Keeps Its Designation · Codes That Persist",
|
|
114
114
|
"DOC_STRUCTURE_BESIDE_PROSE": "Sketch the Map Only When Routes Matter · Structure Beside Prose",
|
|
115
|
+
"DOC_DECLARE_THE_JUDGMENT_CALLS": "Report Every Field Decision · Declare the Judgment Calls",
|
|
115
116
|
"INTRO_DOC": "This file is the operating manual an AI coding agent reads on entering this repository.",
|
|
116
117
|
"INTRO_AGENTS": "Task focused work to the specialist whose job it is rather than running the whole op in one context; each has one objective and reports exactly what it did.",
|
|
117
118
|
"INTRO_SKILLS": "A Skill is a standard operating procedure for a recurring task. Run the matching SOP before improvising.",
|
package/themes/neutral.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"DESC_CODEBASE_DESIGN": "Design deep modules and the domain language around them — small interfaces at deliberate seams, a living GLOSSARY.md, an ADR for each hard-to-reverse decision.",
|
|
43
43
|
"DESC_WAYFINDER": "Chart work too big for one session as a shared map of decision tickets, resolved one at a time until the way is clear.",
|
|
44
44
|
"DESC_PROTOTYPE": "Answer a design question with throwaway code — built to learn, never to keep.",
|
|
45
|
-
"DESC_ROAST_ME": "Adversarially critique
|
|
45
|
+
"DESC_ROAST_ME": "Adversarially critique the user's own ask, plan or idea, not code — brutal, specific, always actionable.",
|
|
46
46
|
"DESC_FRESH_EYES": "Hand a context-free agent only the original task and the finished work; it derives the acceptance bar blind, then rules whether the work meets it — independent of the maker's certainty.",
|
|
47
47
|
"ROAST_PERSONA": "a blunt, no-nonsense senior reviewer who has watched this exact thing fail before",
|
|
48
48
|
"DESC_COUNCIL": "Convene a panel of distinct viewpoints to debate a decision or change, then synthesise a verdict with the dissent preserved.",
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"DOC_ONE_WRITER_PER_FILE": "One Writer Per File",
|
|
113
113
|
"DOC_CODES_THAT_PERSIST": "Codes That Persist",
|
|
114
114
|
"DOC_STRUCTURE_BESIDE_PROSE": "Structure Beside Prose",
|
|
115
|
+
"DOC_DECLARE_THE_JUDGMENT_CALLS": "Declare the Judgment Calls",
|
|
115
116
|
"INTRO_DOC": "This file is the entry point an AI coding agent reads when working in this repository.",
|
|
116
117
|
"INTRO_AGENTS": "Delegate focused work to a specialist rather than doing everything in one context. Each specialist has a single clear purpose and a defined output contract.",
|
|
117
118
|
"INTRO_SKILLS": "A Skill is a written procedure for a recurring task. Run the matching Skill before improvising.",
|
package/themes/pirate.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"DESC_CODEBASE_DESIGN": "Design deep modules and the crew's own tongue — a hold full o' behaviour behind one small hatch, the seam placed a'purpose, a living GLOSSARY.md, an ADR for every call past undoin'.",
|
|
43
43
|
"DESC_WAYFINDER": "Chart a voyage too big for one watch as a shared map o' decision tickets, resolved one at a time till the way be clear.",
|
|
44
44
|
"DESC_PROTOTYPE": "Answer a design question with throwaway code — built to learn, never to keep in the hold.",
|
|
45
|
-
"DESC_ROAST_ME": "Keelhaul
|
|
45
|
+
"DESC_ROAST_ME": "Keelhaul the user's own ask, plan or idea, not code — blunt, exact, and always actionable.",
|
|
46
46
|
"DESC_FRESH_EYES": "Press a fresh hand who's seen neither yer logbook nor yer toil — only the original orders and the finished prize — to set the mark blind, then call whether the work meets the orders, free o' the maker's boastin'.",
|
|
47
47
|
"ROAST_PERSONA": "a grizzled bosun who has watched this exact blunder sink good ships",
|
|
48
48
|
"DESC_COUNCIL": "Call a council of opposed voices to argue a decision out, then hand down a verdict with the dissent kept in the log.",
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"DOC_ONE_WRITER_PER_FILE": "One Hand on the Wheel · One Writer Per File",
|
|
113
113
|
"DOC_CODES_THAT_PERSIST": "Every Prize Keeps Its Mark · Codes That Persist",
|
|
114
114
|
"DOC_STRUCTURE_BESIDE_PROSE": "Chart Only Where the Currents Run · Structure Beside Prose",
|
|
115
|
+
"DOC_DECLARE_THE_JUDGMENT_CALLS": "Log Every Course Ye Set Alone · Declare the Judgment Calls",
|
|
115
116
|
"INTRO_DOC": "This file is the first thing a deckhand reads on signing aboard this repository.",
|
|
116
117
|
"INTRO_AGENTS": "Send the right hand for focused work instead of sailing the whole ship yourself; each has one trade and brings back a clear report of what it did.",
|
|
117
118
|
"INTRO_SKILLS": "A Skill is a drilled manoeuvre for a recurring task. Run the matching manoeuvre before you improvise.",
|
package/themes/sports.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"DESC_CODEBASE_DESIGN": "Design deep modules and the team's own language — a lot behind a small interface, seam placed by the game plan, a living GLOSSARY.md, an ADR for every call too costly to reverse.",
|
|
43
43
|
"DESC_WAYFINDER": "Chart work too big for one game as a shared map of decision tickets, resolved one at a time until the field's clear.",
|
|
44
44
|
"DESC_PROTOTYPE": "Answer a design question with throwaway code — built to learn the play, never to keep.",
|
|
45
|
-
"DESC_ROAST_ME": "Hard post-game breakdown of
|
|
45
|
+
"DESC_ROAST_ME": "Hard post-game breakdown of the user's own ask, plan or idea, not code — blunt, exact, always actionable.",
|
|
46
46
|
"DESC_FRESH_EYES": "Bring on a fresh official who saw none of the training — just the original game plan and the finished play; they set the scoring line blind, then rule whether it counts, with none of the player's own hype.",
|
|
47
47
|
"ROAST_PERSONA": "a veteran color commentator who has called this exact blunder cost a championship",
|
|
48
48
|
"DESC_COUNCIL": "Bring a panel of opposing voices to debate the call, then deliver the verdict with the dissent on the tape.",
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"DOC_ONE_WRITER_PER_FILE": "One Ball, One Carrier · One Writer Per File",
|
|
113
113
|
"DOC_CODES_THAT_PERSIST": "Every Player Keeps a Number · Codes That Persist",
|
|
114
114
|
"DOC_STRUCTURE_BESIDE_PROSE": "Draw Up the Play Only When It Moves · Structure Beside Prose",
|
|
115
|
+
"DOC_DECLARE_THE_JUDGMENT_CALLS": "Own Every Audible at the Line · Declare the Judgment Calls",
|
|
115
116
|
"INTRO_DOC": "This file is the pre-game briefing a coding teammate reads when it suits up for this repository.",
|
|
116
117
|
"INTRO_AGENTS": "Put the right player on focused work instead of running the whole offense yourself; each has one role and reports exactly what it did.",
|
|
117
118
|
"INTRO_SKILLS": "A Skill is a set play for a recurring task. Run the matching play before you improvise.",
|
package/themes/verstappen.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"DESC_CODEBASE_DESIGN": "Design deep modules and the team's own language — a lot behind a small interface, the seam placed like a racing line, a living GLOSSARY.md, an ADR for every call too costly to reverse.",
|
|
43
43
|
"DESC_WAYFINDER": "Chart work too big for one stint as a shared map of decision tickets, resolved one at a time until the track's clear.",
|
|
44
44
|
"DESC_PROTOTYPE": "Answer a design question with throwaway code — built to learn the lap, never to keep.",
|
|
45
|
-
"DESC_ROAST_ME": "Tear into
|
|
45
|
+
"DESC_ROAST_ME": "Tear into the user's own ask, plan or idea, not code — blunt, exact, always actionable.",
|
|
46
46
|
"DESC_FRESH_EYES": "Bring in a fresh pair of eyes who's seen neither the briefing nor the laps — only the original orders and the finished car — to set the bar blind, then call whether it meets the orders, no excuses from the driver.",
|
|
47
47
|
"ROAST_PERSONA": "a championship driver with zero patience who has watched this exact mistake throw away a win",
|
|
48
48
|
"DESC_COUNCIL": "Get a panel of opposed voices to argue a call out, then hand down a verdict with the dissent kept on record.",
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"DOC_ONE_WRITER_PER_FILE": "My Car, My Setup · One Writer Per File",
|
|
113
113
|
"DOC_CODES_THAT_PERSIST": "Every Setup Change Gets a Number · Codes That Persist",
|
|
114
114
|
"DOC_STRUCTURE_BESIDE_PROSE": "Show Me the Data, Not a Pretty Picture · Structure Beside Prose",
|
|
115
|
+
"DOC_DECLARE_THE_JUDGMENT_CALLS": "Tell Me Which Calls You Made Yourself · Declare the Judgment Calls",
|
|
115
116
|
"INTRO_DOC": "This file is the briefing a coding driver reads when it joins this repository.",
|
|
116
117
|
"INTRO_AGENTS": "Get the right engineer on focused work instead of running the whole team yourself; each has one job and reports exactly what it did.",
|
|
117
118
|
"INTRO_SKILLS": "A Skill is a setup you've practised for a recurring task. Run the matching setup before you improvise.",
|
package/themes/wizard.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"DESC_CODEBASE_DESIGN": "Design deep modules and the tongue of the domain — great power behind one small interface, the seam placed by design, a living GLOSSARY.md, an ADR inscribed for each irreversible call.",
|
|
43
43
|
"DESC_WAYFINDER": "Chart a working too vast for one session as a shared map of decision runes, resolved one at a time until the way is clear.",
|
|
44
44
|
"DESC_PROTOTYPE": "Answer a design question with throwaway code — built to learn, never to keep in the grimoire.",
|
|
45
|
-
"DESC_ROAST_ME": "Put
|
|
45
|
+
"DESC_ROAST_ME": "Put the user's own ask, plan or idea to the trial by fire, not code — blunt, exact, always actionable.",
|
|
46
46
|
"DESC_FRESH_EYES": "Conjure an unscried adept who has glimpsed neither your deliberations nor your toil — only the original charge and the wrought work — to divine the measure blind, then pronounce whether the work answers the charge.",
|
|
47
47
|
"ROAST_PERSONA": "an exacting archmagus who has watched this exact folly unmake apprentices",
|
|
48
48
|
"DESC_COUNCIL": "Convene a circle of opposed counsels to debate a decision, then render a verdict with the dissent preserved.",
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"DOC_ONE_WRITER_PER_FILE": "One Quill Per Grimoire · One Writer Per File",
|
|
113
113
|
"DOC_CODES_THAT_PERSIST": "Every Rune Keeps Its Name · Codes That Persist",
|
|
114
114
|
"DOC_STRUCTURE_BESIDE_PROSE": "Draw the Sigil Only Where the Lines Bind · Structure Beside Prose",
|
|
115
|
+
"DOC_DECLARE_THE_JUDGMENT_CALLS": "Name the Forks Where You Chose Alone · Declare the Judgment Calls",
|
|
115
116
|
"INTRO_DOC": "This file is the first page an arcane familiar reads on entering this repository.",
|
|
116
117
|
"INTRO_AGENTS": "Summon the right familiar for focused work rather than casting the whole rite in one circle; each has one purpose and returns a clear account of what it wrought.",
|
|
117
118
|
"INTRO_SKILLS": "A Skill is a proven spell for a recurring task. Speak the matching spell before improvising.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./sections-GalMS0Zv.js";import{i as t,t as n}from"./react-DRhoX0kS.js";import{t as r}from"./api-CxgfYu18.js";import{N as i,k as a,l as o,q as s,y as c}from"./index-
|
|
1
|
+
import{s as e}from"./sections-GalMS0Zv.js";import{i as t,t as n}from"./react-DRhoX0kS.js";import{t as r}from"./api-CxgfYu18.js";import{N as i,k as a,l as o,q as s,y as c}from"./index-CPi22b7y.js";import{a as l,i as u,n as d,o as f,r as p,t as m}from"./activity-dcg5vF9j.js";import{t as h}from"./usePoll-BmR631BB.js";var g=e(t(),1),_=n();function v({s:e}){let t=p[e.status]||p.idle,n=e.files,r=e.todos,o=r&&r.total>0||e.error||e.blocked_on;return(0,_.jsxs)(`a`,{className:`card pad-md act-card`,href:`#/activity/${encodeURIComponent(e.session_id)}`,children:[(0,_.jsxs)(`div`,{className:`row between wrap gap-12`,children:[(0,_.jsxs)(`div`,{className:`row gap-10`,style:{minWidth:0},children:[(0,_.jsx)(`span`,{className:`feed-dot ${t.cls||`acc`}`,style:{width:9,height:9}}),(0,_.jsxs)(`div`,{style:{minWidth:0},children:[(0,_.jsx)(`h3`,{style:{margin:0},children:e.title||l(e.cwd)||e.session_id}),e.cwd&&(0,_.jsx)(`div`,{className:`dim mono`,style:{fontSize:12,...m},title:e.cwd,children:e.cwd})]})]}),(0,_.jsxs)(`div`,{className:`row gap-8`,style:{flexShrink:0},children:[e.model&&(0,_.jsx)(`span`,{className:`badge mono`,title:`model`,children:e.model}),e.agent&&(0,_.jsx)(`span`,{className:`badge`,children:e.agent}),(0,_.jsxs)(`span`,{className:`badge ${t.cls}`,children:[(0,_.jsx)(`span`,{className:`dot`}),t.label]}),(0,_.jsx)(a,{name:`chevron`,className:`glyph act-chev`})]})]}),e.phase&&(0,_.jsxs)(`div`,{className:`row gap-8`,style:{marginTop:10,fontSize:14},children:[(0,_.jsx)(a,{name:`activity`}),(0,_.jsx)(`span`,{style:m,children:e.phase})]}),(e.tokens>0||e.cost>0||e.turn_started_at||n&&n.count>0)&&(0,_.jsxs)(`div`,{className:`row wrap`,style:{gap:16,marginTop:12,fontSize:13,color:`var(--text-2)`},children:[e.tokens>0&&(0,_.jsxs)(`span`,{children:[f(e.tokens),` tok`]}),e.cost>0&&(0,_.jsxs)(`span`,{children:[`$`,e.cost.toFixed(2)]}),e.turn_started_at?(0,_.jsx)(`span`,{children:(0,_.jsx)(d,{startedAt:e.turn_started_at})}):null,n&&n.count>0&&(0,_.jsxs)(`span`,{children:[n.count,` file`,n.count===1?``:`s`,` `,(0,_.jsxs)(`span`,{style:{color:`var(--good)`},children:[`+`,n.additions]}),` `,(0,_.jsxs)(`span`,{style:{color:`var(--bad)`},children:[`−`,n.deletions]})]})]}),o&&(0,_.jsxs)(`div`,{className:`row between wrap gap-12`,style:{marginTop:12,paddingTop:10,borderTop:`1px solid var(--line)`},children:[r&&r.total>0?(0,_.jsxs)(`span`,{className:`row gap-8 dim`,style:{fontSize:13},children:[(0,_.jsx)(u,{done:r.done,total:r.total}),`plan `,r.done,`/`,r.total]}):(0,_.jsx)(`span`,{}),e.error?(0,_.jsx)(`span`,{className:`badge bad`,title:e.error,style:{maxWidth:300,...m},children:e.error}):e.blocked_on?(0,_.jsx)(`span`,{className:`badge bad`,title:e.blocked_on,style:{maxWidth:300,...m},children:e.blocked_on}):null]}),(0,_.jsxs)(`div`,{className:`dim mono`,style:{fontSize:11,marginTop:8},children:[`updated `,i(e.updated_at),` ago`]})]})}function y(){let[e,t]=(0,g.useState)(null),[n,i]=(0,g.useState)(``);h(e=>r.activity().then(n=>{e()&&(t(n),i(``))},t=>{e()&&i(t.message)}),2e3,[]);let a=!e||e.enabled!==!1,l=e?.activity||[],u=s(),d=async()=>{let e=!a;try{let n=await r.activityToggle(e);t(e=>({...e||{},enabled:n.enabled,activity:n.enabled&&e?.activity||[]})),i(``)}catch(e){i(e.message)}};return(0,_.jsxs)(`div`,{className:`narrow`,children:[(0,_.jsxs)(`div`,{className:`head-row mb-16`,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`h1`,{className:`h`,children:`Activity`}),(0,_.jsx)(`p`,{className:`sub`,children:`Live OpenCode sessions this harness is running: what each one is doing right now. Refreshes every couple of seconds; sessions drop off when their process exits.`})]}),(0,_.jsxs)(`div`,{className:`row gap-10`,style:{alignItems:`center`,flexShrink:0},children:[(0,_.jsx)(`span`,{className:`dim mono`,style:{fontSize:12},children:a?`tracking on`:`tracking off`}),(0,_.jsx)(`div`,{className:`sw-toggle${a?` on`:``}`,role:`switch`,"aria-checked":a,"aria-label":`Toggle activity tracking`,tabIndex:0,onClick:d,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.key===` `&&e.preventDefault(),d())}})]})]}),(0,_.jsx)(o,{error:n,style:{marginBottom:12}}),e?a?l.length===0?(0,_.jsxs)(`div`,{className:`empty`,children:[(0,_.jsx)(`div`,{className:`big`,children:`No active sessions`}),`Run `,(0,_.jsx)(`code`,{children:`opencode`}),` and the sessions it spins up appear here.`]}):(0,_.jsx)(`div`,{className:`stack gap-12`,ref:u,children:l.map(e=>(0,_.jsx)(`div`,{"data-flip":e.session_id,children:(0,_.jsx)(v,{s:e})},e.session_id))}):(0,_.jsxs)(`div`,{className:`empty`,children:[(0,_.jsx)(`div`,{className:`big`,children:`Activity tracking is off`}),`The plugin isn't recording sessions. Flip the switch to turn it back on.`]}):(0,_.jsx)(c,{label:`Reading live sessions…`})]})}export{y as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./sections-GalMS0Zv.js";import{i as t,t as n}from"./react-DRhoX0kS.js";import{t as r}from"./api-CxgfYu18.js";import{N as i,k as a,y as o}from"./index-
|
|
1
|
+
import{s as e}from"./sections-GalMS0Zv.js";import{i as t,t as n}from"./react-DRhoX0kS.js";import{t as r}from"./api-CxgfYu18.js";import{N as i,k as a,y as o}from"./index-CPi22b7y.js";import{a as s,n as c,o as l,r as u,t as d}from"./activity-dcg5vF9j.js";import{t as f}from"./usePoll-BmR631BB.js";var p=e(t(),1),m=n();function h(e){return e.kind===`tool`?e.status===`error`?`bad`:e.status===`completed`?`ok`:`acc`:{retry:`warn`,error:`bad`,subtask:`acc`,text:`acc`}[e.kind]||``}function g({rec:e}){let t=e.who===`you`,n=[];t||(e.kind===`tool`&&e.ms!=null&&n.push(`${(e.ms/1e3).toFixed(1)}s`),e.kind===`step`&&(e.tokens&&n.push(`${l(e.tokens)} tok`),e.cost&&n.push(`$${e.cost.toFixed(2)}`)),e.kind===`subtask`&&e.agent&&n.unshift(e.agent));let r=!t&&(e.kind===`text`||e.kind===`thinking`||e.kind===`step`),i=t?e.text:e.label||e.snippet||e.kind;return(0,m.jsxs)(`div`,{className:`row gap-10`,style:{alignItems:`baseline`},children:[(0,m.jsx)(`span`,{className:`badge ${t?``:`acc`}`,style:{flexShrink:0,minWidth:52,justifyContent:`center`},children:t?`you`:`agent`}),(0,m.jsxs)(`div`,{style:{minWidth:0,flex:1,fontSize:13},children:[!t&&(0,m.jsx)(`span`,{className:`feed-dot ${h(e)||`acc`}`,style:{display:`inline-block`,marginRight:8,verticalAlign:`middle`}}),e.kind===`thinking`&&(0,m.jsx)(`span`,{className:`dim`,children:`thinking: `}),r?(0,m.jsx)(`span`,{className:`dim`,children:i}):t?i:(0,m.jsx)(`b`,{children:i}),e.error&&(0,m.jsxs)(`span`,{className:`dim`,children:[`: `,e.error]})]}),n.length>0&&(0,m.jsx)(`span`,{className:`dim mono`,style:{flexShrink:0,fontSize:12},children:n.join(` · `)})]})}function _({turns:e}){return!e||e.length===0?(0,m.jsx)(`div`,{className:`dim`,style:{fontSize:13},children:`No conversation captured yet.`}):(0,m.jsx)(`div`,{className:`stack gap-12`,children:e.map((e,t)=>{let n=e.role===`user`;return(0,m.jsxs)(`div`,{className:`row gap-10`,style:{alignItems:`baseline`},children:[(0,m.jsx)(`span`,{className:`badge ${n?``:`acc`}`,style:{flexShrink:0,minWidth:52,justifyContent:`center`},children:n?`you`:`agent`}),(0,m.jsx)(`div`,{style:{minWidth:0,fontSize:13,color:n?`inherit`:`var(--text-2)`},children:e.text})]},t)})})}function v({sid:e}){let[t,n]=(0,p.useState)(null),[h,v]=(0,p.useState)(``),[y,b]=(0,p.useState)(!1),[x,S]=(0,p.useState)(!1);f(t=>r.activityDetail(e).then(e=>{t()&&(n(e),v(``),b(!1))},e=>{t()&&(e.status===404?b(!0):v(e.message))}),2e3,[e]);let C=(0,m.jsxs)(`a`,{className:`btn ghost sm`,href:`#/activity`,style:{marginBottom:12,display:`inline-flex`,gap:6},children:[(0,m.jsx)(a,{name:`arrow`,style:{transform:`rotate(180deg)`}}),` Activity`]});if(y)return(0,m.jsxs)(`div`,{className:`narrow`,children:[C,(0,m.jsxs)(`div`,{className:`empty`,children:[(0,m.jsx)(`div`,{className:`big`,children:`Session ended`}),`It's no longer live. `,(0,m.jsx)(`a`,{href:`#/activity`,children:`Back to Activity`}),`.`]})]});if(!t)return(0,m.jsxs)(`div`,{className:`narrow`,children:[C,(0,m.jsx)(o,{label:`Loading session…`})]});let w=t.session,T=u[w.status]||u.idle,E=w.files,D=w.todos,O=!!(E&&E.items&&E.items.length>0),k=!!(D&&D.items&&D.items.length>0),A=t.conversation||[],j=t.timeline||[],M=[...A.filter(e=>e.role===`user`).map(e=>({who:`you`,text:e.text,t:e.t||0})),...j.map(e=>({...e,who:`agent`}))].sort((e,t)=>(e.t||0)-(t.t||0));return(0,m.jsxs)(`div`,{className:`narrow`,children:[C,h&&(0,m.jsx)(`p`,{className:`badge bad`,style:{marginBottom:12},children:h}),(0,m.jsxs)(`div`,{className:`card pad-md`,children:[(0,m.jsxs)(`div`,{className:`row between wrap gap-12`,children:[(0,m.jsxs)(`div`,{style:{minWidth:0},children:[(0,m.jsx)(`h1`,{className:`h`,style:{margin:0},children:w.title||s(w.cwd)||w.session_id}),w.cwd&&(0,m.jsx)(`div`,{className:`dim mono`,style:{fontSize:12,...d},title:w.cwd,children:w.cwd})]}),(0,m.jsxs)(`div`,{className:`row gap-8`,style:{flexShrink:0},children:[w.model&&(0,m.jsx)(`span`,{className:`badge mono`,children:w.model}),w.agent&&(0,m.jsx)(`span`,{className:`badge`,children:w.agent}),(0,m.jsxs)(`span`,{className:`badge ${T.cls}`,children:[(0,m.jsx)(`span`,{className:`dot`}),T.label]})]})]}),w.phase&&(0,m.jsxs)(`div`,{className:`row gap-8`,style:{marginTop:10,fontSize:14},children:[(0,m.jsx)(a,{name:`activity`}),(0,m.jsx)(`span`,{style:d,children:w.phase})]}),(0,m.jsxs)(`div`,{className:`row wrap`,style:{gap:16,marginTop:12,fontSize:13,color:`var(--text-2)`},children:[w.tokens>0&&(0,m.jsxs)(`span`,{children:[l(w.tokens),` tok`]}),w.cost>0&&(0,m.jsxs)(`span`,{children:[`$`,w.cost.toFixed(2)]}),w.turn_started_at?(0,m.jsx)(`span`,{children:(0,m.jsx)(c,{startedAt:w.turn_started_at})}):null,(0,m.jsxs)(`span`,{className:`dim`,children:[`updated `,i(w.updated_at),` ago`]})]}),(w.error||w.blocked_on)&&(0,m.jsx)(`div`,{style:{marginTop:10},children:(0,m.jsx)(`span`,{className:`badge bad`,style:{maxWidth:`100%`,...d},children:w.error||w.blocked_on})})]}),(O||k)&&(0,m.jsxs)(`div`,{className:`grid gap-12`,style:{marginTop:12,gridTemplateColumns:O&&k?`minmax(0, 1fr) minmax(0, 1fr)`:`1fr`},children:[O&&(0,m.jsxs)(`div`,{className:`card pad-md`,children:[(0,m.jsx)(`div`,{className:`card-head`,children:(0,m.jsxs)(`h3`,{children:[`Files touched `,(0,m.jsxs)(`span`,{className:`dim`,children:[`(`,E.count,`)`]})]})}),(0,m.jsx)(`div`,{className:`stack`,style:{gap:6,marginTop:8},children:E.items.map(e=>(0,m.jsxs)(`div`,{className:`row between gap-12`,style:{fontSize:13},children:[(0,m.jsx)(`span`,{className:`mono`,style:{...d,minWidth:0,flex:1},title:e.file,children:e.file}),(0,m.jsxs)(`span`,{style:{flexShrink:0},children:[(0,m.jsxs)(`span`,{style:{color:`var(--good)`},children:[`+`,e.additions]}),` `,(0,m.jsxs)(`span`,{style:{color:`var(--bad)`},children:[`−`,e.deletions]})]})]},e.file))})]}),k&&(0,m.jsxs)(`div`,{className:`card pad-md`,children:[(0,m.jsx)(`div`,{className:`card-head`,children:(0,m.jsxs)(`h3`,{children:[`Plan`,` `,(0,m.jsxs)(`span`,{className:`dim`,children:[`(`,D.done,`/`,D.total,`)`]})]})}),(0,m.jsx)(`div`,{className:`stack`,style:{gap:6,marginTop:8},children:D.items.map((e,t)=>(0,m.jsxs)(`div`,{className:`row gap-8`,style:{fontSize:13},children:[(0,m.jsx)(`span`,{className:`feed-dot ${e.status===`completed`?`ok`:e.status===`in_progress`?`acc`:``}`}),(0,m.jsx)(`span`,{style:{textDecoration:e.status===`completed`?`line-through`:`none`,color:e.status===`completed`?`var(--text-3)`:`inherit`},children:e.content})]},t))})]})]}),(0,m.jsxs)(`div`,{className:`card pad-md`,style:{marginTop:12},children:[(0,m.jsxs)(`div`,{className:`card-head`,style:{justifyContent:`space-between`,marginBottom:12},children:[(0,m.jsx)(`h3`,{children:`Timeline`}),j.length>0&&(0,m.jsx)(`button`,{className:`btn ghost sm`,onClick:()=>S(e=>!e),children:x?`Show conversation`:`Show all ${j.length} steps`})]}),x?(0,m.jsx)(`div`,{className:`stack gap-12`,children:M.map((e,t)=>(0,m.jsx)(g,{rec:e},t))}):(0,m.jsx)(_,{turns:A})]})]})}export{v as default};
|