@azure-id/orc 1.9.2 → 2.1.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 +722 -0
- package/README-id.md +56 -42
- package/README.md +58 -41
- package/bin/build-agents.js +125 -29
- package/bin/clear-logs.js +620 -0
- package/bin/cli.js +1873 -180
- package/bin/fix.js +459 -0
- package/bin/gotcha-import.js +1081 -0
- package/bin/gotcha.js +1566 -0
- package/bin/graph-query.js +1 -1
- package/bin/graph.js +717 -717
- package/bin/habit.js +1538 -0
- package/bin/mockrun-catalog.js +284 -276
- package/bin/onboarding-content.js +2 -1
- package/bin/pricing.json +28 -21
- package/bin/run-undo.js +398 -0
- package/bin/trace-write.js +869 -0
- package/bin/verify-contracts.js +627 -100
- package/bin/verify-package.js +68 -10
- package/bin/webui/api.js +151 -6
- package/bin/webui/app.html +239 -232
- package/bin/webui/css/00-tokens.css +110 -92
- package/bin/webui/css/04-motion.css +87 -0
- package/bin/webui/css/06-responsive.css +203 -178
- package/bin/webui/css/panels/behaviour.css +205 -0
- package/bin/webui/css/panels/hookui.css +79 -0
- package/bin/webui/fixtures/behaviour.js +562 -0
- package/bin/webui/fixtures/extra.js +9 -9
- package/bin/webui/fixtures/flow.js +81 -81
- package/bin/webui/fixtures/hookui.js +506 -431
- package/bin/webui/fixtures/index.js +66 -3
- package/bin/webui/fixtures/knowledge.js +9 -3
- package/bin/webui/fixtures/maintenance.js +123 -42
- package/bin/webui/fixtures/rules.js +1007 -1002
- package/bin/webui/fixtures/settings.js +6 -7
- package/bin/webui/fixtures/stats.js +25 -6
- package/bin/webui/fixtures/wait.js +98 -97
- package/bin/webui/i18n/en/behaviour.json +156 -0
- package/bin/webui/i18n/en/hookui.json +290 -194
- package/bin/webui/i18n/en/maintenance.json +71 -52
- package/bin/webui/i18n/en/nav.json +25 -24
- package/bin/webui/i18n/en/settings.json +60 -60
- package/bin/webui/i18n/en/tour.json +37 -35
- package/bin/webui/i18n/id/behaviour.json +156 -0
- package/bin/webui/i18n/id/hookui.json +290 -194
- package/bin/webui/i18n/id/maintenance.json +71 -52
- package/bin/webui/i18n/id/nav.json +25 -24
- package/bin/webui/i18n/id/settings.json +60 -60
- package/bin/webui/i18n/id/tour.json +37 -35
- package/bin/webui/js/01-i18n.js +155 -154
- package/bin/webui/js/05-banners.js +181 -172
- package/bin/webui/js/06-edit.js +193 -183
- package/bin/webui/js/90-tour.js +498 -494
- package/bin/webui/js/91-shortcuts.js +126 -126
- package/bin/webui/js/99-boot.js +121 -118
- package/bin/webui/js/panels/behaviour.js +1087 -0
- package/bin/webui/js/panels/hookui.js +2196 -1691
- package/bin/webui/js/panels/maintenance.js +336 -235
- package/bin/webui/js/panels/settings.js +726 -719
- package/mock-run/INDEX.md +110 -107
- package/mock-run/extra-slots.md +1 -1
- package/mock-run/gotcha-import.md +118 -0
- package/mock-run/habits.md +129 -0
- package/mock-run/orc-aftermath.md +392 -392
- package/mock-run/orc-budget.md +29 -33
- package/mock-run/orc-cli.md +200 -200
- package/mock-run/orc-explain.md +86 -86
- package/mock-run/orc-extra.md +389 -392
- package/mock-run/orc-fix.md +87 -0
- package/mock-run/orc-pattern.md +112 -112
- package/mock-run/orc-quick.md +6 -1
- package/mock-run/orc.md +157 -157
- package/package.json +1 -1
- package/templates/agents/MODEL-MAPPING.md +37 -34
- package/templates/agents/orc-advisor-opus-5-xhigh.md +1 -7
- package/templates/agents/orc-analyze-mini-opus-5-med.md +1 -6
- package/templates/agents/orc-analyze-mini-sonnet-5-high.md +2 -5
- package/templates/agents/{orc-claude-writer-opus-4-8-high.md → orc-claude-writer-opus-5-low.md} +48 -53
- package/templates/agents/orc-context-combiner-opus-5-high.md +1 -11
- package/templates/agents/orc-executor-haiku-4-5.md +14 -6
- package/templates/agents/orc-executor-opus-4-7-high.md +14 -6
- package/templates/agents/orc-executor-opus-4-7-med.md +14 -6
- package/templates/agents/orc-executor-opus-4-8-high.md +14 -6
- package/templates/agents/orc-executor-opus-5-high.md +14 -6
- package/templates/agents/orc-executor-opus-5-low.md +14 -6
- package/templates/agents/orc-executor-opus-5-med.md +14 -6
- package/templates/agents/orc-executor-sonnet-4-6-high.md +14 -6
- package/templates/agents/orc-executor-sonnet-4-6-med.md +14 -6
- package/templates/agents/orc-executor-sonnet-5-high.md +15 -7
- package/templates/agents/orc-executor-sonnet-5-low.md +155 -0
- package/templates/agents/orc-executor-sonnet-5-med.md +155 -0
- package/templates/agents/orc-graph-noter-sonnet-4-6-med.md +1 -10
- package/templates/agents/orc-judge-opus-5-xhigh.md +5 -9
- package/templates/agents/orc-learn-writer-opus-5-low.md +1 -7
- package/templates/agents/orc-pattern-codifier-opus-5-med.md +1 -8
- package/templates/agents/orc-pattern-codifier-sonnet-5-high.md +58 -63
- package/templates/agents/orc-planner-mini-opus-5-med.md +1 -4
- package/templates/agents/orc-planner-mini-sonnet-5-high.md +2 -3
- package/templates/agents/orc-planner-opus-5-med.md +1 -4
- package/templates/agents/orc-recon-opus-5-low.md +1 -8
- package/templates/agents/orc-recon-sonnet-4-6-med.md +1 -8
- package/templates/agents/orc-retro-opus-5-med.md +6 -8
- package/templates/agents/orc-retro-sonnet-5-high.md +7 -8
- package/templates/agents/orc-reviewer-opus-5-low.md +96 -0
- package/templates/agents/orc-scout-opus-5-low.md +1 -6
- package/templates/agents/orc-scout-sonnet-4-6-high.md +35 -39
- package/templates/agents/orc-system-analyst-opus-5-high.md +1 -6
- package/templates/agents/orc-test-author-opus-5-med.md +4 -5
- package/templates/agents/orc-trace-writer-haiku-4-5.md +3 -7
- package/templates/agents/orc-verifier-opus-5-med.md +16 -8
- package/templates/agents/{orc-wiki-scanner-opus-4-8-high.md → orc-wiki-scanner-opus-5-low.md} +74 -79
- package/templates/agents/orc-wiki-scanner-sonnet-5-high.md +97 -106
- package/templates/commands/orc-analyze.md +13 -21
- package/templates/commands/orc-fast.md +10 -15
- package/templates/commands/orc-fix.md +18 -0
- package/templates/commands/orc-poly.md +12 -21
- package/templates/commands/orc-pr-driver.md +11 -30
- package/templates/commands/orc-pr-setup.md +10 -31
- package/templates/commands/orc-route.md +11 -41
- package/templates/commands/orc-test.md +5 -60
- package/templates/commands/orc-wiki.md +64 -64
- package/templates/hooks/README.md +109 -7
- package/templates/hooks/orc-session-hook.js +339 -0
- package/templates/hooks/orc-statusline-render.js +317 -23
- package/templates/hooks/orc-statusline.js +165 -50
- package/templates/hooks/orc-subagent-line.js +23 -5
- package/templates/hooks/orc-weather-fetch.js +123 -0
- package/templates/skills/_shared/README.md +9 -0
- package/templates/skills/_shared/code-graph.md +47 -55
- package/templates/skills/_shared/config-precedence.md +3 -1
- package/templates/skills/_shared/extra-dispatch.md +78 -93
- package/templates/skills/_shared/gotchas.md +248 -177
- package/templates/skills/_shared/habits.md +101 -0
- package/templates/skills/_shared/lane-contract.md +84 -0
- package/templates/skills/_shared/opus5-only.md +14 -14
- package/templates/skills/_shared/phases/README.md +142 -83
- package/templates/skills/_shared/phases/analyst-gates.md +10 -21
- package/templates/skills/_shared/phases/execution.md +8 -14
- package/templates/skills/_shared/phases/house-rules.md +27 -32
- package/templates/skills/_shared/phases/intake.md +127 -133
- package/templates/skills/_shared/phases/mock-example.md +46 -56
- package/templates/skills/_shared/phases/plan-handoff.md +91 -97
- package/templates/skills/_shared/phases/planning.md +7 -17
- package/templates/skills/_shared/phases/preflight.md +19 -42
- package/templates/skills/_shared/phases/review.md +24 -28
- package/templates/skills/_shared/phases/rules.md +18 -42
- package/templates/skills/_shared/phases/scoring.md +55 -65
- package/templates/skills/_shared/phases/security-checklist.md +46 -50
- package/templates/skills/_shared/phases/security.md +45 -55
- package/templates/skills/_shared/phases/ship.md +6 -15
- package/templates/skills/_shared/phases/stop-resume.md +2 -5
- package/templates/skills/_shared/phases/summary.md +73 -48
- package/templates/skills/_shared/phases/testgen.md +41 -51
- package/templates/skills/_shared/phases/trace-verbs.md +447 -0
- package/templates/skills/_shared/phases/trace.md +66 -297
- package/templates/skills/_shared/phases/verify.md +62 -70
- package/templates/skills/_shared/phases/wave-grouping.md +128 -133
- package/templates/skills/_shared/phases/wiki-consult.md +10 -6
- package/templates/skills/_shared/read-ladder.md +2 -55
- package/templates/skills/_shared/return-validation.md +17 -70
- package/templates/skills/_shared/review-slice.md +106 -0
- package/templates/skills/_shared/smoke-gate.md +46 -28
- package/templates/skills/_shared/wait.md +1 -0
- package/templates/skills/context-combiner/SKILL.md +15 -44
- package/templates/skills/orc/README.md +2 -2
- package/templates/skills/orc/SKILL.md +35 -63
- package/templates/skills/orc/config.md +25 -27
- package/templates/skills/orc/examples/full-run-mock.md +2 -1
- package/templates/skills/orc/references/effort-and-mode.md +17 -17
- package/templates/skills/orc/references/pattern-gate.md +89 -89
- package/templates/skills/orc/references/phases/intake.md +41 -47
- package/templates/skills/orc/references/phases/integration.md +13 -19
- package/templates/skills/orc/references/preflight-report.md +11 -12
- package/templates/skills/orc/references/ultra-mode.md +9 -7
- package/templates/skills/orc/schemas/checkpoint.md +122 -122
- package/templates/skills/orc/subskills/orc-execution/SKILL.md +27 -73
- package/templates/skills/orc/subskills/orc-execution/core.md +12 -99
- package/templates/skills/orc/subskills/orc-execution/subagent.md +14 -13
- package/templates/skills/orc/subskills/orc-review-verify/SKILL.md +12 -53
- package/templates/skills/orc/subskills/orc-review-verify/core.md +52 -135
- package/templates/skills/orc/subskills/orc-review-verify/subagent.md +7 -7
- package/templates/skills/orc/subskills/orc-testgen/SKILL.md +11 -22
- package/templates/skills/orc/subskills/orc-testgen/core.md +20 -59
- package/templates/skills/orc/subskills/orc-testgen/subagent.md +7 -7
- package/templates/skills/orc-advisor/SKILL.md +56 -60
- package/templates/skills/orc-analyze/SKILL.md +33 -67
- package/templates/skills/orc-analyze/schemas/report-audit.md +2 -1
- package/templates/skills/orc-analyze/schemas/report-prose.md +2 -1
- package/templates/skills/orc-analyze-mini/SKILL.md +35 -70
- package/templates/skills/orc-claude/SKILL.md +14 -14
- package/templates/skills/orc-claude/examples/claude-run-mock.md +65 -65
- package/templates/skills/orc-diy/README.md +31 -0
- package/templates/skills/orc-diy/SKILL.md +27 -78
- package/templates/skills/orc-diy/references/blocks/pattern.md +18 -18
- package/templates/skills/orc-fast/SKILL.md +49 -75
- package/templates/skills/orc-fix/SKILL.md +110 -0
- package/templates/skills/orc-judge/SKILL.md +77 -82
- package/templates/skills/orc-mini/SKILL.md +64 -112
- package/templates/skills/orc-mini/examples/mini-run-mock.md +4 -2
- package/templates/skills/orc-pattern/SKILL.md +27 -48
- package/templates/skills/orc-poly/SKILL.md +32 -61
- package/templates/skills/orc-pr-driver/SKILL.md +25 -51
- package/templates/skills/orc-pr-driver/references/green-gate.md +113 -105
- package/templates/skills/orc-pr-setup/SKILL.md +20 -45
- package/templates/skills/orc-quick/README.md +44 -3
- package/templates/skills/orc-quick/SKILL.md +77 -108
- package/templates/skills/orc-quick/references/dispatch-gate.md +18 -6
- package/templates/skills/orc-quick/references/gh-mode.md +50 -1
- package/templates/skills/orc-quick/references/look.md +3 -1
- package/templates/skills/orc-retro/SKILL.md +20 -19
- package/templates/skills/orc-retro/examples/retro-mock.md +17 -17
- package/templates/skills/orc-route/SKILL.md +25 -45
- package/templates/skills/orc-test/SKILL.md +16 -37
- package/templates/skills/orc-verify/SKILL.md +14 -32
- package/templates/skills/orc-wait/SKILL.md +156 -163
- package/templates/skills/orc-wiki/README.md +325 -325
- package/templates/skills/orc-wiki/SKILL.md +195 -195
- package/templates/skills/orc-wiki/examples/wiki-run-mock.md +37 -37
- package/templates/skills/orc-wiki/references/extra.md +2 -2
- package/templates/skills/orc-wiki/references/partial-refresh.md +276 -271
- package/templates/skills/orc-wiki/references/phases/phase-0.md +2 -7
- package/templates/skills/orc-wiki/references/phases/phase-1.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-2.md +4 -9
- package/templates/skills/orc-wiki/references/phases/phase-3.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-3c.md +4 -8
- package/templates/agents/orc-claude-writer-opus-5-med.md +0 -55
- package/templates/agents/orc-reviewer-opus-5-med.md +0 -60
- package/templates/agents/orc-wiki-scanner-opus-5-med.md +0 -81
package/templates/agents/{orc-wiki-scanner-opus-4-8-high.md → orc-wiki-scanner-opus-5-low.md}
RENAMED
|
@@ -1,79 +1,74 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: orc-wiki-scanner-opus-
|
|
3
|
-
description: >
|
|
4
|
-
ORC Wiki Scanner — claude-opus-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
- `
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
- `
|
|
63
|
-
- `
|
|
64
|
-
- `
|
|
65
|
-
- `
|
|
66
|
-
- `
|
|
67
|
-
|
|
68
|
-
- `
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
Malformed = failure (requeue): a missing `keywords[]` or `covered_files`, a
|
|
76
|
-
missing `crosslink_tags` field (tags OR `none`+reason is mandatory — "found
|
|
77
|
-
boundaries but wrote no tags" is structurally impossible), a contract section
|
|
78
|
-
with an unanchored claim, or any write to the project. `needs_context` cap: 2
|
|
79
|
-
per area.
|
|
1
|
+
---
|
|
2
|
+
name: orc-wiki-scanner-opus-5-low
|
|
3
|
+
description: >
|
|
4
|
+
ORC Wiki Scanner — claude-opus-5-5, low effort. Dispatched by orc-wiki per scan-task (DEEP tier), ONE coverage area each.
|
|
5
|
+
model: claude-opus-5-5
|
|
6
|
+
effort: low
|
|
7
|
+
tools: Read, Glob, Grep, Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
You are the ORC WIKI SCANNER. You scan exactly ONE coverage area and return the
|
|
11
|
+
knowledge you read out of its files. You do not decide what to scan next, do not
|
|
12
|
+
write the wiki, do not run `orc wiki sync`, and do not spawn other agents.
|
|
13
|
+
|
|
14
|
+
## Input slice (from the dispatcher)
|
|
15
|
+
- `area` — the coverage area's slug (`orders`, `auth-conventions`, …)
|
|
16
|
+
- `files[]` — the area's file list. Read them; this is your evidence base.
|
|
17
|
+
- `doc_type` — `feature` | `reference`
|
|
18
|
+
- `doc_contract` — `schemas/wiki-doc.md` v2 (section set + header fields)
|
|
19
|
+
- `crosslink_kinds` — the kind catalog (`references/crosslink-kinds.md`, or at
|
|
20
|
+
minimum the kinds already in `crosslink_provided`). **REUSE an existing kind**
|
|
21
|
+
unless the boundary is genuinely a new sort — prefer it over a near-synonym
|
|
22
|
+
(`rest-endpoint`, never `route`). A synonym creates a SECOND file for one
|
|
23
|
+
boundary point, and a refresh may never bulk-delete the folder, so the
|
|
24
|
+
duplicate is permanent.
|
|
25
|
+
- `prior_doc` — the existing doc for this area on a refresh, or null
|
|
26
|
+
|
|
27
|
+
## Procedure
|
|
28
|
+
1. **Read every file in `files[]`** before writing a word. You may Glob/Grep
|
|
29
|
+
within the area to follow a symbol, and run read-only Bash (`git log -1`,
|
|
30
|
+
`git hash-object`) — never a build, never a test, never a write.
|
|
31
|
+
2. **Write the doc body** per `doc_contract`: TL;DR, Key files, Public
|
|
32
|
+
interface, Contracts & shapes, and the area's remaining sections.
|
|
33
|
+
**Every factual claim in a contract section is ANCHORED to a real
|
|
34
|
+
`file:line` you read this session. An unanchored claim is OMITTED — never
|
|
35
|
+
guessed, never inferred from a name, never carried over from `prior_doc`
|
|
36
|
+
without re-reading its anchor.** That rule is the whole value of the wiki:
|
|
37
|
+
a derived second source of truth that a consumer can trust without opening
|
|
38
|
+
the code.
|
|
39
|
+
3. **Record `covered_files`** — `{path: short-hash}` for every file you actually
|
|
40
|
+
read (`git hash-object <path>` is the short hash; quote what the command
|
|
41
|
+
returns, never invent one). A file you skimmed but did not read does not
|
|
42
|
+
belong here: this map is what later tells a refresh which docs went stale.
|
|
43
|
+
4. **Emit `crosslink_tags`** — one tag body per OUTWARD boundary point in this
|
|
44
|
+
area's files, each per `schemas/crosslink-tag.md` §1, captured FROM SOURCE at
|
|
45
|
+
the moment you read it (the same knowledge as your `Contracts & shapes`
|
|
46
|
+
rows — not doc prose re-read later). Every tag is `<kind>:<name>`: a nameless
|
|
47
|
+
tag has no slug and therefore no file. If the area genuinely exposes nothing
|
|
48
|
+
outward, return the literal token `none` plus a one-line reason — an
|
|
49
|
+
auditable claim, never silence.
|
|
50
|
+
5. **`keywords[]`** — 5–10 retrieval terms a future consumer would actually
|
|
51
|
+
search for. They feed `INDEX.md`; a doc nobody can match is a doc nobody
|
|
52
|
+
reads.
|
|
53
|
+
6. **Planning notes** — the core/isolated/risk hints the orchestrator uses for
|
|
54
|
+
scoring. Facts you observed, not adjectives.
|
|
55
|
+
|
|
56
|
+
## Return EXACTLY this (the orchestrator validates)
|
|
57
|
+
- `area`
|
|
58
|
+
- `status` — done | failed | partial | needs_context
|
|
59
|
+
- `doc_body` — the filled sections (the orchestrator adds the header metadata)
|
|
60
|
+
- `keywords[]` — 5–10 retrieval terms
|
|
61
|
+
- `covered_files` — `{path: short-hash}` for every file you READ
|
|
62
|
+
- `crosslink_tags` — REQUIRED: a list of tag bodies, or `none` + reason
|
|
63
|
+
- `planning_notes` — core/isolated/risk hints
|
|
64
|
+
- `failure_reason` — required when `failed`; else null
|
|
65
|
+
- `progress` — `{percent, notes}` when `partial`; else null
|
|
66
|
+
- `actual_model` — the model id quoted VERBATIM from your system prompt ("The
|
|
67
|
+
exact model ID is …"); NEVER infer from priors; `unknown` if no such line exists
|
|
68
|
+
- `actual_effort` — the value of $CLAUDE_EFFORT (read via Bash at start)
|
|
69
|
+
|
|
70
|
+
Malformed = failure (requeue): a missing `keywords[]` or `covered_files`, a
|
|
71
|
+
missing `crosslink_tags` field (tags OR `none`+reason is mandatory — "found
|
|
72
|
+
boundaries but wrote no tags" is structurally impossible), a contract section
|
|
73
|
+
with an unanchored claim, or any write to the project. `needs_context` cap: 2
|
|
74
|
+
per area.
|
|
@@ -1,106 +1,97 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: orc-wiki-scanner-sonnet-5-high
|
|
3
|
-
description: >
|
|
4
|
-
ORC Wiki Scanner —
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
- `
|
|
34
|
-
- `
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
the
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
-
|
|
82
|
-
-
|
|
83
|
-
|
|
84
|
-
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
- `
|
|
91
|
-
|
|
92
|
-
- `
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
- `progress` — `{percent, notes}` when `partial`; else null
|
|
99
|
-
- `actual_model` — the model id quoted VERBATIM from your system prompt ("The
|
|
100
|
-
exact model ID is …"); NEVER infer from priors; `unknown` if no such line exists
|
|
101
|
-
- `actual_effort` — the value of $CLAUDE_EFFORT (read via Bash at start)
|
|
102
|
-
|
|
103
|
-
Malformed = failure (requeue): a missing `keywords[]` or `covered_files`, a missing
|
|
104
|
-
`crosslink_tags` field (tags OR `none`+reason is mandatory — "found boundaries but
|
|
105
|
-
wrote no tags" is structurally impossible), a contract section with an unanchored
|
|
106
|
-
claim, or any write to the project. `needs_context` cap: 2 per area.
|
|
1
|
+
---
|
|
2
|
+
name: orc-wiki-scanner-sonnet-5-high
|
|
3
|
+
description: >
|
|
4
|
+
ORC Wiki Scanner — claude-sonnet-5-5, high effort. Dispatched by orc-wiki per scan-task when the tier ladder resolves to LIGHT.
|
|
5
|
+
model: claude-sonnet-5-5
|
|
6
|
+
effort: high
|
|
7
|
+
tools: Read, Glob, Grep, Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
You are the ORC WIKI SCANNER, light tier. You scan exactly ONE coverage area and
|
|
11
|
+
return the knowledge you read out of its files. You do not decide what to scan
|
|
12
|
+
next, do not write the wiki, do not run `orc wiki sync`, and do not spawn other
|
|
13
|
+
agents.
|
|
14
|
+
|
|
15
|
+
**Light is about the SIZE of the delta, never about the standard of the work.**
|
|
16
|
+
You are dispatched only when a doc already exists and its covered files moved by a
|
|
17
|
+
small, no-new-surface amount — so the reading is bounded, not shallower. Every
|
|
18
|
+
contract below is byte-identical to the deep scanner's. If the area turns out to be
|
|
19
|
+
larger or more novel than the slice implies, return `needs_context` with what you
|
|
20
|
+
found; do not quietly do a partial job at this tier.
|
|
21
|
+
|
|
22
|
+
## Input slice (from the dispatcher)
|
|
23
|
+
- `area` — the coverage area's slug (`orders`, `auth-conventions`, …)
|
|
24
|
+
- `files[]` — the area's file list. Read them; this is your evidence base.
|
|
25
|
+
- `doc_type` — `feature` | `reference`
|
|
26
|
+
- `doc_contract` — `schemas/wiki-doc.md` v2 (section set + header fields)
|
|
27
|
+
- `crosslink_kinds` — the kind catalog (`references/crosslink-kinds.md`, or at
|
|
28
|
+
minimum the kinds already in `crosslink_provided`). **REUSE an existing kind**
|
|
29
|
+
unless the boundary is genuinely a new sort — prefer it over a near-synonym
|
|
30
|
+
(`rest-endpoint`, never `route`). A synonym creates a SECOND file for one
|
|
31
|
+
boundary point, and a refresh may never bulk-delete the folder, so the
|
|
32
|
+
duplicate is permanent.
|
|
33
|
+
- `prior_doc` — the existing doc for this area (always present at this tier)
|
|
34
|
+
- `delta_files[]` — the covered files that actually changed since `prior_doc` was
|
|
35
|
+
scanned. Read these FIRST and most carefully; they are why you were dispatched.
|
|
36
|
+
|
|
37
|
+
## Procedure
|
|
38
|
+
1. **Read every file in `files[]`** before writing a word, starting with
|
|
39
|
+
`delta_files[]`. You may Glob/Grep within the area to follow a symbol, and run
|
|
40
|
+
read-only Bash (`git log -1`, `git hash-object`) — never a build, never a test,
|
|
41
|
+
never a write.
|
|
42
|
+
2. **Write the doc body** per `doc_contract`: TL;DR, Key files, Public interface,
|
|
43
|
+
Contracts & shapes, and the area's remaining sections.
|
|
44
|
+
**Every factual claim in a contract section is ANCHORED to a real `file:line`
|
|
45
|
+
you read this session. An unanchored claim is OMITTED — never guessed, never
|
|
46
|
+
inferred from a name, and never carried over from `prior_doc` without re-reading
|
|
47
|
+
its anchor.** That last clause is the one this tier is most likely to violate and
|
|
48
|
+
the one that matters most here: `prior_doc` is a convenience for structure and
|
|
49
|
+
wording, never a source of facts. An anchor you did not re-read this session is
|
|
50
|
+
an anchor you cannot claim.
|
|
51
|
+
3. **Record `covered_files`** — `{path: short-hash}` for every file you actually
|
|
52
|
+
read (`git hash-object <path>` is the short hash; quote what the command
|
|
53
|
+
returns, never invent one). A file you skimmed but did not read does not belong
|
|
54
|
+
here: this map is what later tells a refresh which docs went stale.
|
|
55
|
+
4. **Emit `crosslink_tags`** — one tag body per OUTWARD boundary point in this
|
|
56
|
+
area's files, each per `schemas/crosslink-tag.md` §1, captured FROM SOURCE at the
|
|
57
|
+
moment you read it (the same knowledge as your `Contracts & shapes` rows — not
|
|
58
|
+
doc prose re-read later). Every tag is `<kind>:<name>`: a nameless tag has no
|
|
59
|
+
slug and therefore no file. If the area genuinely exposes nothing outward, return
|
|
60
|
+
the literal token `none` plus a one-line reason — an auditable claim, never
|
|
61
|
+
silence.
|
|
62
|
+
5. **`keywords[]`** — 5–10 retrieval terms a future consumer would actually search
|
|
63
|
+
for. They feed `INDEX.md`; a doc nobody can match is a doc nobody reads.
|
|
64
|
+
6. **Planning notes** — the core/isolated/risk hints the orchestrator uses for
|
|
65
|
+
scoring. Facts you observed, not adjectives.
|
|
66
|
+
|
|
67
|
+
## Escalate rather than under-deliver
|
|
68
|
+
|
|
69
|
+
Return `needs_context` with the reason when any of these is true, instead of
|
|
70
|
+
producing a thinner doc:
|
|
71
|
+
|
|
72
|
+
- a `delta_file` introduces an exported symbol the slice did not mention
|
|
73
|
+
- a covered file named in `prior_doc` no longer exists (that is STRUCTURAL, and a
|
|
74
|
+
targeted refresh cannot re-anchor blind)
|
|
75
|
+
- the area's real file count is far larger than `files[]` suggested
|
|
76
|
+
|
|
77
|
+
The dispatcher will re-run the area at the deep tier. A `needs_context` here is
|
|
78
|
+
cheap; a doc with invented anchors is permanent.
|
|
79
|
+
|
|
80
|
+
## Return EXACTLY this (the orchestrator validates)
|
|
81
|
+
- `area`
|
|
82
|
+
- `status` — done | failed | partial | needs_context
|
|
83
|
+
- `doc_body` — the filled sections (the orchestrator adds the header metadata)
|
|
84
|
+
- `keywords[]` — 5–10 retrieval terms
|
|
85
|
+
- `covered_files` — `{path: short-hash}` for every file you READ
|
|
86
|
+
- `crosslink_tags` — REQUIRED: a list of tag bodies, or `none` + reason
|
|
87
|
+
- `planning_notes` — core/isolated/risk hints
|
|
88
|
+
- `failure_reason` — required when `failed`; else null
|
|
89
|
+
- `progress` — `{percent, notes}` when `partial`; else null
|
|
90
|
+
- `actual_model` — the model id quoted VERBATIM from your system prompt ("The
|
|
91
|
+
exact model ID is …"); NEVER infer from priors; `unknown` if no such line exists
|
|
92
|
+
- `actual_effort` — the value of $CLAUDE_EFFORT (read via Bash at start)
|
|
93
|
+
|
|
94
|
+
Malformed = failure (requeue): a missing `keywords[]` or `covered_files`, a missing
|
|
95
|
+
`crosslink_tags` field (tags OR `none`+reason is mandatory — "found boundaries but
|
|
96
|
+
wrote no tags" is structurally impossible), a contract section with an unanchored
|
|
97
|
+
claim, or any write to the project. `needs_context` cap: 2 per area.
|
|
@@ -1,21 +1,13 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: System Analyst — turn a doc (PDF/pasted) into a scope-bounded, code-grounded requirement report before planning
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Use the **orc-analyze** skill (System Analyst).
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
run), and challenge scope + accuracy issues — blocking ones one at a time,
|
|
15
|
-
advisory ones in one batched round, all recorded. Write the human report +
|
|
16
|
-
derived requirement spec into `analyst_report/{name}/`; the orchestrator
|
|
17
|
-
spot-checks the evidence and lints the report↔spec derivation before offering
|
|
18
|
-
to take it into a build or leave it as a report. The orchestrator dispatches
|
|
19
|
-
the analysis to a subagent.
|
|
20
|
-
|
|
21
|
-
Document / scope: $ARGUMENTS
|
|
1
|
+
---
|
|
2
|
+
description: System Analyst — turn a doc (PDF/pasted) into a scope-bounded, code-grounded requirement report before planning
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Use the **orc-analyze** skill (System Analyst). It ingests the document, runs
|
|
6
|
+
the Standard-vs-Deep gate and WAITS for your choice, bounds the work to the
|
|
7
|
+
requested scope, and maps each requirement to real code with quote-anchored
|
|
8
|
+
evidence. It writes the report and the derived spec into
|
|
9
|
+
`orc/analyzer/{name}/` (a copy goes to `analyst_report/{name}/` only when you
|
|
10
|
+
stop at the report). The orchestrator dispatches the analysis to a
|
|
11
|
+
subagent.
|
|
12
|
+
|
|
13
|
+
Document / scope: $ARGUMENTS
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Fastest lane — knowledge-gated single Sonnet 4.6 high executor; needs fresh wiki + pattern cache, else falls back to orc-mini
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Use the **orc-fast** skill.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
Sonnet 4.6 high executor with wiki page pointers + literal pattern injection,
|
|
12
|
-
build+test smoke gate (one repair round, blocks ship on red), ship. No analyst,
|
|
13
|
-
no planner, no review/verify. Orchestrator may run at Sonnet medium.
|
|
14
|
-
|
|
15
|
-
Request: $ARGUMENTS
|
|
1
|
+
---
|
|
2
|
+
description: Fastest lane — knowledge-gated single Sonnet 4.6 high executor; needs fresh wiki + pattern cache, else falls back to orc-mini
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Use the **orc-fast** skill. It needs a fresh project wiki AND a cached
|
|
6
|
+
code-pattern for the request's language; either missing → it falls back to
|
|
7
|
+
orc-mini with the request carried over. Then one Sonnet 4.6 high executor, a
|
|
8
|
+
build+test smoke gate, and ship.
|
|
9
|
+
|
|
10
|
+
Request: $ARGUMENTS
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Record a fix and what it fixes — a Sonar issue, a defect ORC caused, a bug from AI-generated code — so the next review sees it
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run the `orc-fix` skill.
|
|
6
|
+
|
|
7
|
+
The user typed: `$ARGUMENTS`
|
|
8
|
+
|
|
9
|
+
The arguments say what the fix fixes, in the user's own words: a Sonar rule key
|
|
10
|
+
or URL, a PR thread URL, a failed check, or "ORC caused this", and the file and
|
|
11
|
+
lines when the user knows them.
|
|
12
|
+
|
|
13
|
+
Never classify the fix yourself. `orc fix classify --text "<the words>" --json`
|
|
14
|
+
proposes the class from evidence, and the user confirms or changes it ONCE.
|
|
15
|
+
|
|
16
|
+
A run is open → record only; the host lane makes the fix. No run is open → offer
|
|
17
|
+
to make the fix like `/orc-quick` (the dispatch gate, then the smoke gate).
|
|
18
|
+
Either way it returns to exactly where the user was.
|
|
@@ -1,21 +1,12 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Poly-repo planning — plan ONE change across 2+ repos, freeze the shared interface contract, split into one plan per repo (no drift)
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Run the **orc-poly** skill
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
to orc-plan · stop & chat · add more context (another repo path or pasted
|
|
14
|
-
knowledge). On "pass to orc-plan" the shared planner self-activates poly mode on
|
|
15
|
-
the `orc-poly:spec` marker and splits ONE plan per repo — the HOST plan into
|
|
16
|
-
this repo, each PEER plan written into that peer repo — every plan pinned to the
|
|
17
|
-
frozen `interface-contract.md`. You then build each repo later, in its own
|
|
18
|
-
session, with plain `/orc`, and no repo drifts. PEER source is READ-ONLY (the
|
|
19
|
-
only peer write is its plan file); orc-poly never builds.
|
|
20
|
-
|
|
21
|
-
Change / peer path(s): $ARGUMENTS
|
|
1
|
+
---
|
|
2
|
+
description: Poly-repo planning — plan ONE change across 2+ repos, freeze the shared interface contract, split into one plan per repo (no drift)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run the **orc-poly** skill in the HOST repo; paste the path of each PEER repo.
|
|
6
|
+
It asks until the shared boundary is pinned, then writes `poly-context.md`,
|
|
7
|
+
`interface-contract.md` and `poly-spec.md` into
|
|
8
|
+
`poly-repo-implementation/<slug>/`. The `orc-poly:spec` marker makes the planner
|
|
9
|
+
split ONE plan per repo, each pinned to `interface-contract.md`. PEER source is
|
|
10
|
+
read-only; it never builds.
|
|
11
|
+
|
|
12
|
+
Change / peer path(s): $ARGUMENTS
|
|
@@ -1,30 +1,11 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Stacked-PR driver — execute a stack plan: one branch per layer, mandatory per-layer green gate, gh stack submit, then sync/rebase/bottom-up merge
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Run the **orc-pr-driver** skill. It
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
**Three ways in — all read the same file** (`stacked-pr/<slug>/stack-plan.md`,
|
|
13
|
-
probed with `orc pr stack status`):
|
|
14
|
-
|
|
15
|
-
1. `/orc-pr-setup` planned it (the normal path),
|
|
16
|
-
2. ORC's ship phase handed it over (`stacked-pr/<slug>/STACK-FROM.md`),
|
|
17
|
-
3. **you wrote the plan yourself** — run `orc pr stack template` for the skeleton,
|
|
18
|
-
fill it in, and start here. No planner run required.
|
|
19
|
-
|
|
20
|
-
It **refuses to run** — naming the exact missing field — on a plan with an
|
|
21
|
-
unanswered uncertain seam, a missing ticket, a layer with no purpose or value
|
|
22
|
-
class, a FOUNDATION layer that names no consumer, fewer than 2 layers, or a red
|
|
23
|
-
build. It never fills a field in for you.
|
|
24
|
-
|
|
25
|
-
When the change already exists in the worktree, your work is snapshotted to a
|
|
26
|
-
scratch branch BEFORE any branch surgery, every layer is materialized from that
|
|
27
|
-
snapshot file-by-file, and a completeness gate proves the union of the layers
|
|
28
|
-
equals the snapshot exactly before anything is submitted.
|
|
29
|
-
|
|
30
|
-
Slug / plan path / stack action: $ARGUMENTS
|
|
1
|
+
---
|
|
2
|
+
description: Stacked-PR driver — execute a stack plan: one branch per layer, mandatory per-layer green gate, gh stack submit, then sync/rebase/bottom-up merge
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run the **orc-pr-driver** skill. It executes `stacked-pr/<slug>/stack-plan.md`
|
|
6
|
+
(probed with `orc pr stack status`; written by `/orc-pr-setup`, by you, or
|
|
7
|
+
handed over as `STACK-FROM.md`): one branch per layer, a mandatory green gate
|
|
8
|
+
per layer, then `gh stack submit` and the merge care. It refuses a plan with an
|
|
9
|
+
open field or a red build, and never fills a field in for you.
|
|
10
|
+
|
|
11
|
+
Slug / plan path / stack action: $ARGUMENTS
|
|
@@ -1,31 +1,10 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Stacked-PR planner — decide where the PR cut lines go, prove each layer stands alone, write stacked-pr/<slug>/stack-plan.md (plans only, never touches git)
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Run the **orc-pr-setup** skill. It plans a
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
It **plans only**: no branches, no commits, no pushes, no PRs. That is
|
|
12
|
-
`/orc-pr-driver`.
|
|
13
|
-
|
|
14
|
-
Two entry modes, auto-detected: **greenfield** (nothing written yet — a spec or
|
|
15
|
-
ticket) and **orc-run** (the change already exists in the worktree, e.g. ORC just
|
|
16
|
-
built it — the split is file-granular; hunk surgery is forbidden). A ticket
|
|
17
|
-
number is required. The PR-description template is resolved from the ORC template,
|
|
18
|
-
then the project (`.github/`, `docs/`), then a `CLAUDE.md` section — and if none
|
|
19
|
-
exists you get three recommended options to pick from; declining them all means
|
|
20
|
-
the stack is skipped and the change ships as one regular PR.
|
|
21
|
-
|
|
22
|
-
**P0 hard gate:** every uncertain boundary STOPS the lane and asks you, one
|
|
23
|
-
decision at a time, with the LoC/file/CI cost of each option and a recommendation
|
|
24
|
-
— and records your answer under `## Decisions`. Same-tier files, shared helpers,
|
|
25
|
-
refactor mixed with behavior change, ordering ambiguity and oversize atoms are all
|
|
26
|
-
uncertain by definition. It never guesses a seam.
|
|
27
|
-
|
|
28
|
-
When the plan is written it shows the layer table, states that nothing has been
|
|
29
|
-
created yet, and hands off to `/orc-pr-driver`.
|
|
30
|
-
|
|
31
|
-
Ticket / change / spec: $ARGUMENTS
|
|
1
|
+
---
|
|
2
|
+
description: Stacked-PR planner — decide where the PR cut lines go, prove each layer stands alone, write stacked-pr/<slug>/stack-plan.md (plans only, never touches git)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run the **orc-pr-setup** skill. It plans a stack of pull requests for a change
|
|
6
|
+
too big to review as one, and writes `stacked-pr/<slug>/stack-plan.md`. It plans
|
|
7
|
+
only: no branches, commits, pushes or PRs — that is `/orc-pr-driver`. A ticket
|
|
8
|
+
is required. Every uncertain boundary STOPS and asks you, one decision at a time.
|
|
9
|
+
|
|
10
|
+
Ticket / change / spec: $ARGUMENTS
|