@jabworks/condux 0.25.2 → 0.26.1
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/agents/coder.md +0 -14
- package/agents/explorer.md +3 -13
- package/agents/planner.md +2 -6
- package/agents/researcher.md +2 -12
- package/package.json +1 -1
- package/skills/discovery/SKILL.md +2 -2
- package/skills/draft-plan/SKILL.md +1 -1
- package/skills/finalize/SKILL.md +9 -1
- package/skills/finalize/references/native-change.md +106 -0
- package/skills/live-verification/SKILL.md +9 -0
- package/skills/subagent-execution/agents/coder.md +0 -14
- package/skills/subagent-execution/agents/explorer.md +3 -13
- package/skills/subagent-execution/agents/planner.md +2 -6
- package/skills/subagent-execution/agents/researcher.md +2 -12
- package/skills/subagent-execution/references/spawn-rules.md +1 -1
- package/skills/workflow/SKILL.md +5 -1
package/agents/coder.md
CHANGED
|
@@ -20,16 +20,6 @@ You are an elite implementation engineer. You execute well-defined code changes
|
|
|
20
20
|
4. Load the `coding-directive` skill if it is installed (skip silently when it
|
|
21
21
|
isn't) — its rules fill every gap where the codebase shows no local convention.
|
|
22
22
|
|
|
23
|
-
## Workflow
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
1. Read AGENTS.md → project commands and conventions
|
|
27
|
-
2. Read files to modify → current state
|
|
28
|
-
3. Load coding-directive if installed → house style
|
|
29
|
-
4. Implement the task
|
|
30
|
-
5. Report what changed
|
|
31
|
-
```
|
|
32
|
-
|
|
33
23
|
## On completion
|
|
34
24
|
|
|
35
25
|
Summarize: files changed and what changed in each. Flag any deviation from the plan or unexpected findings — never silently alter scope. Do not run any verification commands — that's `/finalize`'s job.
|
|
@@ -46,7 +36,3 @@ Summarize: files changed and what changed in each. Flag any deviation from the p
|
|
|
46
36
|
### Unexpected Findings
|
|
47
37
|
[Anything outside scope the orchestrator should know about — or "None"]
|
|
48
38
|
```
|
|
49
|
-
|
|
50
|
-
## Cost Tier
|
|
51
|
-
|
|
52
|
-
**EXPENSIVE** — only spawn when the task is isolated enough to benefit from a separate context. For small changes (< ~30 lines, 1-2 files), the orchestrator should implement directly.
|
package/agents/explorer.md
CHANGED
|
@@ -6,13 +6,7 @@ permission: {"bash":"deny","edit":"deny"}
|
|
|
6
6
|
|
|
7
7
|
You are a read-only codebase navigator and static-analysis specialist. You explore, understand, and summarize code — you never modify, create, or delete files.
|
|
8
8
|
|
|
9
|
-
##
|
|
10
|
-
|
|
11
|
-
You are designed for **non-blocking delegation**:
|
|
12
|
-
|
|
13
|
-
1. Orchestrator spawns you with a specific question
|
|
14
|
-
2. Orchestrator continues other work while you traverse
|
|
15
|
-
3. Orchestrator retrieves your findings when needed
|
|
9
|
+
## Scope
|
|
16
10
|
|
|
17
11
|
Answer the question asked. Don't expand scope.
|
|
18
12
|
|
|
@@ -22,7 +16,7 @@ Map file structure and module boundaries; trace type/symbol definitions and usag
|
|
|
22
16
|
|
|
23
17
|
## Rules
|
|
24
18
|
|
|
25
|
-
- **Prefer LSP** (go-to-definition, find-references) for symbol tracing; fall back to
|
|
19
|
+
- **Prefer LSP** (go-to-definition, find-references) for symbol tracing; fall back to whatever search tool this session gives you, and to reading files outward from entry points and config when it gives you none.
|
|
26
20
|
- **No speculation** — report only what you observe; never invent unverified structure.
|
|
27
21
|
- **No file writes or edits** — ever.
|
|
28
22
|
- **No bash execution** — read tools only.
|
|
@@ -32,7 +26,7 @@ Map file structure and module boundaries; trace type/symbol definitions and usag
|
|
|
32
26
|
|
|
33
27
|
1. Orient: `package.json` / `tsconfig`, monorepo vs single package, build tooling, framework.
|
|
34
28
|
2. Find entry points and public API surfaces.
|
|
35
|
-
3. Trace requested symbols via LSP, then
|
|
29
|
+
3. Trace requested symbols via LSP, then search.
|
|
36
30
|
4. Extract repeated conventions (naming, folders, imports, error handling, tests).
|
|
37
31
|
|
|
38
32
|
## Output Format
|
|
@@ -68,7 +62,3 @@ Always return a structured summary — omit sections with no findings:
|
|
|
68
62
|
```
|
|
69
63
|
|
|
70
64
|
Be concise within each section. Bullet points preferred over prose. Include `file:line` references wherever possible.
|
|
71
|
-
|
|
72
|
-
## Cost Tier
|
|
73
|
-
|
|
74
|
-
**CHEAP** — preferred for wide traversal that would pollute the orchestrator's context window. Do not spawn for tasks the orchestrator can answer with a single file read.
|
package/agents/planner.md
CHANGED
|
@@ -23,8 +23,8 @@ For LARGE tasks (cross-cutting, unclear scope, multiple subsystems), `/discovery
|
|
|
23
23
|
|
|
24
24
|
## Task Size Classification
|
|
25
25
|
|
|
26
|
-
- **Large (
|
|
27
|
-
- **Small (
|
|
26
|
+
- **Large** (the brief says MEDIUM or LARGE, or the work crosses module boundaries or changes architecture): ask up to 3 impact-prioritized clarifying questions in one message, then delegate to `explorer`/`researcher`, then produce the full plan with ADR.
|
|
27
|
+
- **Small** (the brief says SMALL — isolated, clear requirements): skip questions, delegate immediately, produce the plan, list assumptions at the end.
|
|
28
28
|
|
|
29
29
|
If findings reveal a "small" task is actually large, upgrade to the Large format retroactively.
|
|
30
30
|
|
|
@@ -94,7 +94,3 @@ Exact paths affected. Tree format if relevant.
|
|
|
94
94
|
- **Tight scope** — never propose refactoring unrelated code.
|
|
95
95
|
- Show trade-off reasoning in the ADR — don't just assert conclusions.
|
|
96
96
|
- If a plan needs information you cannot obtain (e.g. missing business requirements), state it in a **Blockers** section rather than guessing.
|
|
97
|
-
|
|
98
|
-
## Cost Tier
|
|
99
|
-
|
|
100
|
-
**EXPENSIVE** — produces high-context output that informs all downstream work. Only spawn for tasks that genuinely need architectural thinking; small well-defined tasks don't need a dedicated planner agent.
|
package/agents/researcher.md
CHANGED
|
@@ -6,13 +6,7 @@ permission: {"bash":"deny","edit":"deny"}
|
|
|
6
6
|
|
|
7
7
|
You are a library and framework research specialist. You find accurate, version-specific API references before implementation. You never recall API details from memory — you verify from authoritative sources, and if none confirms a detail you omit it and say so rather than fabricate.
|
|
8
8
|
|
|
9
|
-
##
|
|
10
|
-
|
|
11
|
-
You are designed for **non-blocking delegation**:
|
|
12
|
-
|
|
13
|
-
1. Orchestrator spawns you with a clear question
|
|
14
|
-
2. Orchestrator continues implementing other tasks while you run
|
|
15
|
-
3. Orchestrator retrieves your result when it's needed on the critical path
|
|
9
|
+
## Scope
|
|
16
10
|
|
|
17
11
|
Return a dense, actionable summary — not a tutorial.
|
|
18
12
|
|
|
@@ -68,8 +62,4 @@ Always return a reference card in this exact structure:
|
|
|
68
62
|
- **Scope**: research only what was asked; don't expand into related APIs.
|
|
69
63
|
- **Ambiguity**: if the package is ambiguous (multiple npm names), ask which is intended before researching.
|
|
70
64
|
- **Failure**: if the chain is exhausted, return a card with Source Used: "Not found" and what was tried.
|
|
71
|
-
- **
|
|
72
|
-
|
|
73
|
-
## Cost Tier
|
|
74
|
-
|
|
75
|
-
**CHEAP** — good for focused lookups. Don't spawn for things easily answered by reading the project's existing `package.json` or `AGENTS.md`.
|
|
65
|
+
- **Outward-facing** — read only what version resolution needs (`package.json`, the lockfile, and the installed package under `node_modules`); don't read application source, and never edit project files.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jabworks/condux",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.1",
|
|
4
4
|
"description": "OpenCode plugin for the condux workflow toolkit — bundles the condux skills and injects the specialist agents (coder, explorer, planner, researcher) plus an opt-in plan-review listener.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -186,8 +186,8 @@ Accept either answer. Never block. Never lecture.
|
|
|
186
186
|
|
|
187
187
|
## The Section Card (Step 3)
|
|
188
188
|
|
|
189
|
-
|
|
190
|
-
|
|
189
|
+
Every section is presented in one fixed shape. Left open, the shape gets
|
|
190
|
+
reinvented each time and comes out as prose.
|
|
191
191
|
|
|
192
192
|
**Before §1, announce the section list.** Name every section you intend to
|
|
193
193
|
present, in order: *"4 sections: approach · section shape · blueprint trigger ·
|
|
@@ -28,7 +28,7 @@ Turn a signed-off design into a clear, executable plan. Lean task cards, not mic
|
|
|
28
28
|
you want to skip it."
|
|
29
29
|
|
|
30
30
|
**Reading `status`.** Discovery creates the design file at its first
|
|
31
|
-
section, not at sign-off, so the file existing
|
|
31
|
+
section, not at sign-off, so the file existing does not mean the design
|
|
32
32
|
was approved. Its frontmatter carries the answer:
|
|
33
33
|
|
|
34
34
|
| `status` | Means | Gate |
|
package/skills/finalize/SKILL.md
CHANGED
|
@@ -77,7 +77,7 @@ Tests fail
|
|
|
77
77
|
|
|
78
78
|
## Output Format
|
|
79
79
|
|
|
80
|
-
The `Plan` line below only appears when no matching plan doc was found for the inferred feature slug — it's omitted entirely otherwise.
|
|
80
|
+
The `Plan` line below only appears when no matching plan doc was found for the inferred feature slug — it's omitted entirely otherwise. In a mobile app project a `Native` line joins `Env` (see Companion Files); the example below is a web project, so it has none.
|
|
81
81
|
|
|
82
82
|
```
|
|
83
83
|
## Finalize: [task or feature name]
|
|
@@ -119,6 +119,13 @@ until it breaks someone else's checkout.
|
|
|
119
119
|
example file (`.env.example`, `.env.sample`, or whatever it uses) gains the
|
|
120
120
|
same key in the same change — placeholder value only, never a real secret.
|
|
121
121
|
- Report `Env ✓ n/a` when the diff adds none, so the check is visibly running.
|
|
122
|
+
- **Native (mobile app projects only).** None of the gates above compiles the
|
|
123
|
+
native layer, so a diff that touches it passes everything and still is not
|
|
124
|
+
in the app until it is rebuilt and reinstalled. Classify the diff as
|
|
125
|
+
`JS only` or `native rebuild` and report it as a `Native` line; on a native
|
|
126
|
+
rebuild, end "Ready to commit — native rebuild needed before it can run" and
|
|
127
|
+
name the project's rebuild command. The path list, the fingerprint check and
|
|
128
|
+
when to omit the line are in `references/native-change.md`.
|
|
122
129
|
|
|
123
130
|
## What Does NOT Happen
|
|
124
131
|
|
|
@@ -134,3 +141,4 @@ until it breaks someone else's checkout.
|
|
|
134
141
|
## See Also
|
|
135
142
|
|
|
136
143
|
- `references/rationalization-table.md` — common rationalizations for skipping finalize and why they're wrong
|
|
144
|
+
- `references/native-change.md` — mobile apps: when a diff needs a native rebuild, the fingerprint check, the `Native` line
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Native-change check
|
|
2
|
+
|
|
3
|
+
A mobile app has two layers. JavaScript reloads in seconds; the native binary
|
|
4
|
+
(Kotlin/Swift, native modules, the compiled app config) only changes when the
|
|
5
|
+
app is **rebuilt and reinstalled**. None of the JS gates — typecheck, lint,
|
|
6
|
+
format, tests — compile the native layer, so a change that touches it can pass
|
|
7
|
+
every gate and still not exist in the app on the device. This check makes that
|
|
8
|
+
visible. It never blocks.
|
|
9
|
+
|
|
10
|
+
Its verdict is used in three places: finalize reports it, workflow mentions it
|
|
11
|
+
at tier confirmation, and live-verification acts on it before driving the app.
|
|
12
|
+
|
|
13
|
+
## When it applies
|
|
14
|
+
|
|
15
|
+
Only in an app project: an `expo` or `react-native` dependency in
|
|
16
|
+
`package.json`, or a committed `android/` or `ios/` directory. Anywhere else,
|
|
17
|
+
omit the `Native` line entirely — a web repo gets no noise from it.
|
|
18
|
+
|
|
19
|
+
## The verdict
|
|
20
|
+
|
|
21
|
+
Two outcomes. Name the escalation, lightest first:
|
|
22
|
+
|
|
23
|
+
| Verdict | Means | To see the change |
|
|
24
|
+
|---|---|---|
|
|
25
|
+
| **JS only** | Nothing in the diff reaches the binary | Fast Refresh or a JS reload; restart the app process if a native module is left in a bad state |
|
|
26
|
+
| **Native rebuild** | The diff touches something compiled into the binary | Rebuild the app (dev client or release build) and reinstall it; clear the app's data too when the change touches native state that persists across installs (notification channels, permissions, keychain entries, database schema created natively) |
|
|
27
|
+
|
|
28
|
+
## How to decide
|
|
29
|
+
|
|
30
|
+
**Precise — when a recorded fingerprint exists.** Expo projects can hash
|
|
31
|
+
their native layer. If `.condux/native/fingerprint-<platform>.json` exists
|
|
32
|
+
(recorded after the last native build — see below), generate a fresh one the
|
|
33
|
+
same way and compare the two JSONs' `hash` fields:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# with expo-updates installed — per platform, the same hash EAS uses:
|
|
37
|
+
npx expo-updates fingerprint:generate --platform android > .condux/native/now-android.json
|
|
38
|
+
# without it — covers both platforms at once:
|
|
39
|
+
npx @expo/fingerprint fingerprint:generate > .condux/native/now-all.json
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Equal hashes are **JS only**. Different hashes are **Native rebuild** — then
|
|
43
|
+
name what moved with
|
|
44
|
+
`npx @expo/fingerprint fingerprint:diff <recorded> <now>`. The `now-*` file is
|
|
45
|
+
overwritten on every check. Compare against the recording for the platform
|
|
46
|
+
you are building; a both-platforms fingerprint also moves on iOS-only changes,
|
|
47
|
+
so say which one you used. The fingerprint covers what a path list cannot
|
|
48
|
+
see — autolinked native modules inside `node_modules`, config-plugin output,
|
|
49
|
+
patches to native packages.
|
|
50
|
+
|
|
51
|
+
**Core — always available.** Otherwise, read the task's diff. Any of these
|
|
52
|
+
means **Native rebuild**:
|
|
53
|
+
|
|
54
|
+
- local native code: `modules/**` (Expo modules), any `.kt`, `.java`, `.swift`,
|
|
55
|
+
`.m`, `.mm`, `.cpp`, `.h` file, `*.podspec`, `build.gradle*`
|
|
56
|
+
- committed native projects: `android/**`, `ios/**` (if they are generated by
|
|
57
|
+
prebuild, the real change is upstream of them — find it)
|
|
58
|
+
- app config compiled into the binary: in `app.json` / `app.config.*`, the
|
|
59
|
+
`plugins`, `permissions`, `android`/`ios` blocks, `name`, `scheme`, `version`,
|
|
60
|
+
`runtimeVersion`, splash and icon assets; any config-plugin source file
|
|
61
|
+
- dependencies: a package added, removed or version-changed in `package.json`
|
|
62
|
+
that ships native code (it has an `android/` or `ios/` directory, or an
|
|
63
|
+
`expo-module.config.json`), and every Expo SDK or React Native upgrade
|
|
64
|
+
- patches: `patches/**` touching a native package, `cng-patches/**`
|
|
65
|
+
- `eas.json` build-profile changes that alter what is compiled
|
|
66
|
+
|
|
67
|
+
When a file's effect is unclear, say **Native rebuild** and name the file —
|
|
68
|
+
a wasted rebuild costs minutes; a verification against a stale binary costs
|
|
69
|
+
the whole verification.
|
|
70
|
+
|
|
71
|
+
**Project override.** If `AGENTS.md` lists the project's native paths or its
|
|
72
|
+
rebuild command, those win over the lists above.
|
|
73
|
+
|
|
74
|
+
## Recording the fingerprint
|
|
75
|
+
|
|
76
|
+
The precise check needs a baseline, so whoever rebuilds and installs the app
|
|
77
|
+
records one straight after the install succeeds:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
mkdir -p .condux/native
|
|
81
|
+
npx expo-updates fingerprint:generate --platform android > .condux/native/fingerprint-android.json
|
|
82
|
+
# or, without expo-updates:
|
|
83
|
+
npx @expo/fingerprint fingerprint:generate > .condux/native/fingerprint-all.json
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
It lives in `.condux/` (working state, gitignored) because it describes the
|
|
87
|
+
build installed on *this* machine's device or emulator, not the repository.
|
|
88
|
+
Only Expo projects record one — the fingerprint reads the Expo config, and
|
|
89
|
+
`npx` fetches the tool if it isn't installed. Bare React Native and native-only
|
|
90
|
+
projects use the core check alone.
|
|
91
|
+
|
|
92
|
+
## Reporting
|
|
93
|
+
|
|
94
|
+
In finalize's output, beside `Env`:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
Native ✓ JS only (android fingerprint unchanged) — a reload shows it
|
|
98
|
+
Native ⚠ native rebuild — modules/app-lock/android/…/AppLockModule.kt, app.json plugins
|
|
99
|
+
not compiled by any gate; rebuild with `npx expo run:android` and reinstall before verifying
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Take the rebuild command from `AGENTS.md` or `package.json` scripts; if
|
|
103
|
+
neither names one, say "rebuild the app" and stop — never guess a build
|
|
104
|
+
command. On **Native rebuild**, finalize ends "Ready to commit — native rebuild
|
|
105
|
+
needed before it can run": the code is clean; the app just does not contain it
|
|
106
|
+
yet.
|
|
@@ -43,6 +43,15 @@ Do not assume a dev server. In order:
|
|
|
43
43
|
Start it in the background, wait for it to actually serve (poll the URL — do
|
|
44
44
|
not `sleep` and hope), and note the URL in the report.
|
|
45
45
|
|
|
46
|
+
**Mobile app: rebuild first when the change is native.** If finalize's
|
|
47
|
+
`Native` line said *native rebuild* (or the diff touches the native layer —
|
|
48
|
+
see finalize's native-change check), the installed app does not contain the
|
|
49
|
+
change. Rebuild and reinstall it before driving anything, and clear the app's
|
|
50
|
+
data when the change touches native state that persists across installs. On
|
|
51
|
+
an Expo project, record the new fingerprint as that check describes. A verdict
|
|
52
|
+
driven on the old binary is a verdict on code that isn't there — if the
|
|
53
|
+
rebuild can't run here, stop and report that instead.
|
|
54
|
+
|
|
46
55
|
### Step 2 — Enumerate the claims
|
|
47
56
|
|
|
48
57
|
Before touching the UI, write down what the change claims to do — one line
|
|
@@ -23,16 +23,6 @@ You are an elite implementation engineer. You execute well-defined code changes
|
|
|
23
23
|
4. Load the `coding-directive` skill if it is installed (skip silently when it
|
|
24
24
|
isn't) — its rules fill every gap where the codebase shows no local convention.
|
|
25
25
|
|
|
26
|
-
## Workflow
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
1. Read AGENTS.md → project commands and conventions
|
|
30
|
-
2. Read files to modify → current state
|
|
31
|
-
3. Load coding-directive if installed → house style
|
|
32
|
-
4. Implement the task
|
|
33
|
-
5. Report what changed
|
|
34
|
-
```
|
|
35
|
-
|
|
36
26
|
## On completion
|
|
37
27
|
|
|
38
28
|
Summarize: files changed and what changed in each. Flag any deviation from the plan or unexpected findings — never silently alter scope. Do not run any verification commands — that's `/finalize`'s job.
|
|
@@ -49,7 +39,3 @@ Summarize: files changed and what changed in each. Flag any deviation from the p
|
|
|
49
39
|
### Unexpected Findings
|
|
50
40
|
[Anything outside scope the orchestrator should know about — or "None"]
|
|
51
41
|
```
|
|
52
|
-
|
|
53
|
-
## Cost Tier
|
|
54
|
-
|
|
55
|
-
**EXPENSIVE** — only spawn when the task is isolated enough to benefit from a separate context. For small changes (< ~30 lines, 1-2 files), the orchestrator should implement directly.
|
|
@@ -9,13 +9,7 @@ memory: user
|
|
|
9
9
|
|
|
10
10
|
You are a read-only codebase navigator and static-analysis specialist. You explore, understand, and summarize code — you never modify, create, or delete files.
|
|
11
11
|
|
|
12
|
-
##
|
|
13
|
-
|
|
14
|
-
You are designed for **non-blocking delegation**:
|
|
15
|
-
|
|
16
|
-
1. Orchestrator spawns you with a specific question
|
|
17
|
-
2. Orchestrator continues other work while you traverse
|
|
18
|
-
3. Orchestrator retrieves your findings when needed
|
|
12
|
+
## Scope
|
|
19
13
|
|
|
20
14
|
Answer the question asked. Don't expand scope.
|
|
21
15
|
|
|
@@ -25,7 +19,7 @@ Map file structure and module boundaries; trace type/symbol definitions and usag
|
|
|
25
19
|
|
|
26
20
|
## Rules
|
|
27
21
|
|
|
28
|
-
- **Prefer LSP** (go-to-definition, find-references) for symbol tracing; fall back to
|
|
22
|
+
- **Prefer LSP** (go-to-definition, find-references) for symbol tracing; fall back to whatever search tool this session gives you, and to reading files outward from entry points and config when it gives you none.
|
|
29
23
|
- **No speculation** — report only what you observe; never invent unverified structure.
|
|
30
24
|
- **No file writes or edits** — ever.
|
|
31
25
|
- **No bash execution** — read tools only.
|
|
@@ -35,7 +29,7 @@ Map file structure and module boundaries; trace type/symbol definitions and usag
|
|
|
35
29
|
|
|
36
30
|
1. Orient: `package.json` / `tsconfig`, monorepo vs single package, build tooling, framework.
|
|
37
31
|
2. Find entry points and public API surfaces.
|
|
38
|
-
3. Trace requested symbols via LSP, then
|
|
32
|
+
3. Trace requested symbols via LSP, then search.
|
|
39
33
|
4. Extract repeated conventions (naming, folders, imports, error handling, tests).
|
|
40
34
|
|
|
41
35
|
## Output Format
|
|
@@ -71,7 +65,3 @@ Always return a structured summary — omit sections with no findings:
|
|
|
71
65
|
```
|
|
72
66
|
|
|
73
67
|
Be concise within each section. Bullet points preferred over prose. Include `file:line` references wherever possible.
|
|
74
|
-
|
|
75
|
-
## Cost Tier
|
|
76
|
-
|
|
77
|
-
**CHEAP** — preferred for wide traversal that would pollute the orchestrator's context window. Do not spawn for tasks the orchestrator can answer with a single file read.
|
|
@@ -26,8 +26,8 @@ For LARGE tasks (cross-cutting, unclear scope, multiple subsystems), `/discovery
|
|
|
26
26
|
|
|
27
27
|
## Task Size Classification
|
|
28
28
|
|
|
29
|
-
- **Large (
|
|
30
|
-
- **Small (
|
|
29
|
+
- **Large** (the brief says MEDIUM or LARGE, or the work crosses module boundaries or changes architecture): ask up to 3 impact-prioritized clarifying questions in one message, then delegate to `explorer`/`researcher`, then produce the full plan with ADR.
|
|
30
|
+
- **Small** (the brief says SMALL — isolated, clear requirements): skip questions, delegate immediately, produce the plan, list assumptions at the end.
|
|
31
31
|
|
|
32
32
|
If findings reveal a "small" task is actually large, upgrade to the Large format retroactively.
|
|
33
33
|
|
|
@@ -97,7 +97,3 @@ Exact paths affected. Tree format if relevant.
|
|
|
97
97
|
- **Tight scope** — never propose refactoring unrelated code.
|
|
98
98
|
- Show trade-off reasoning in the ADR — don't just assert conclusions.
|
|
99
99
|
- If a plan needs information you cannot obtain (e.g. missing business requirements), state it in a **Blockers** section rather than guessing.
|
|
100
|
-
|
|
101
|
-
## Cost Tier
|
|
102
|
-
|
|
103
|
-
**EXPENSIVE** — produces high-context output that informs all downstream work. Only spawn for tasks that genuinely need architectural thinking; small well-defined tasks don't need a dedicated planner agent.
|
|
@@ -9,13 +9,7 @@ memory: user
|
|
|
9
9
|
|
|
10
10
|
You are a library and framework research specialist. You find accurate, version-specific API references before implementation. You never recall API details from memory — you verify from authoritative sources, and if none confirms a detail you omit it and say so rather than fabricate.
|
|
11
11
|
|
|
12
|
-
##
|
|
13
|
-
|
|
14
|
-
You are designed for **non-blocking delegation**:
|
|
15
|
-
|
|
16
|
-
1. Orchestrator spawns you with a clear question
|
|
17
|
-
2. Orchestrator continues implementing other tasks while you run
|
|
18
|
-
3. Orchestrator retrieves your result when it's needed on the critical path
|
|
12
|
+
## Scope
|
|
19
13
|
|
|
20
14
|
Return a dense, actionable summary — not a tutorial.
|
|
21
15
|
|
|
@@ -71,8 +65,4 @@ Always return a reference card in this exact structure:
|
|
|
71
65
|
- **Scope**: research only what was asked; don't expand into related APIs.
|
|
72
66
|
- **Ambiguity**: if the package is ambiguous (multiple npm names), ask which is intended before researching.
|
|
73
67
|
- **Failure**: if the chain is exhausted, return a card with Source Used: "Not found" and what was tried.
|
|
74
|
-
- **
|
|
75
|
-
|
|
76
|
-
## Cost Tier
|
|
77
|
-
|
|
78
|
-
**CHEAP** — good for focused lookups. Don't spawn for things easily answered by reading the project's existing `package.json` or `AGENTS.md`.
|
|
68
|
+
- **Outward-facing** — read only what version resolution needs (`package.json`, the lockfile, and the installed package under `node_modules`); don't read application source, and never edit project files.
|
|
@@ -7,7 +7,7 @@ Reference for deciding when and which agent to spawn. Read this before every spa
|
|
|
7
7
|
| Tier | Examples | Model | When to Use |
|
|
8
8
|
| ------------- | ------------------------- | ----------------------------------------- | --------------------------------------------------------------------------------------------- |
|
|
9
9
|
| **FREE** | — | n/a | Built-in tool calls (bash, grep, file reads) — do these yourself, no agent needed |
|
|
10
|
-
| **CHEAP** | `explorer`, `researcher` | haiku
|
|
10
|
+
| **CHEAP** | `explorer`, `researcher` | haiku (`explorer`), sonnet (`researcher`) | Read-only, narrow scope, clear output. Good for lookup tasks that would bloat your context |
|
|
11
11
|
| **EXPENSIVE** | `coder`, `planner` | sonnet (default) — see Model Selection | Write-capable or high-context output. Justify carefully |
|
|
12
12
|
|
|
13
13
|
### Model Selection for `coder` Dispatch
|
package/skills/workflow/SKILL.md
CHANGED
|
@@ -70,7 +70,11 @@ Every tier ends with `preflight` then `finalize` — no exceptions.
|
|
|
70
70
|
## The Router
|
|
71
71
|
|
|
72
72
|
1. **Infer the tier.** How many files? Requirement clear or needs design? Crosses
|
|
73
|
-
service/package boundaries? Unknowns needing exploration first?
|
|
73
|
+
service/package boundaries? Unknowns needing exploration first? In a mobile
|
|
74
|
+
app, also: does it touch the native layer (finalize's native-change check
|
|
75
|
+
lists what does)? That doesn't change the tier — a one-line Kotlin fix is
|
|
76
|
+
still SMALL — but say so when confirming, because nothing can verify it
|
|
77
|
+
until the app is rebuilt and reinstalled.
|
|
74
78
|
2. **Spec lookup.** Detect the package root (walk up from CWD to git root, find the
|
|
75
79
|
nearest `package.json` / `Cargo.toml` / `go.mod` / `pyproject.toml`). Check both
|
|
76
80
|
scopes (deduplicate if identical):
|