@aperant/framework 0.12.1 → 0.13.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 +32 -1
- package/README.md +10 -0
- package/dist/cli/commands/route.d.mts +22 -0
- package/dist/cli/commands/route.d.mts.map +1 -1
- package/dist/cli/commands/route.mjs +169 -14
- package/dist/cli/commands/route.mjs.map +1 -1
- package/dist/cli/route/skill-discover.d.mts +4 -0
- package/dist/cli/route/skill-discover.d.mts.map +1 -1
- package/dist/cli/route/skill-discover.mjs +2 -0
- package/dist/cli/route/skill-discover.mjs.map +1 -1
- package/dist/cli/skill-author/contract.d.mts +21 -0
- package/dist/cli/skill-author/contract.d.mts.map +1 -1
- package/dist/cli/skill-author/contract.mjs +22 -0
- package/dist/cli/skill-author/contract.mjs.map +1 -1
- package/dist/plugin/.claude-plugin/plugin.json +1 -1
- package/dist/plugin/skills/apt/SKILL.md +12 -4
- package/dist/plugin/skills/apt-debug/SKILL.md +1 -0
- package/dist/plugin/skills/apt-improve/SKILL.md +1 -0
- package/dist/plugin/skills/apt-review/SKILL.md +1 -0
- package/dist/plugin/skills/apt-triage/SKILL.md +1 -0
- package/package.json +1 -1
- package/skills/apt/SKILL.md +12 -4
- package/skills/apt-debug/SKILL.md +1 -0
- package/skills/apt-improve/SKILL.md +1 -0
- package/skills/apt-review/SKILL.md +1 -0
- package/skills/apt-triage/SKILL.md +1 -0
- package/src/cli/commands/route.mjs +174 -14
- package/src/cli/route/skill-discover.mjs +2 -0
- package/src/cli/skill-author/contract.mjs +23 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,38 @@
|
|
|
3
3
|
All notable changes to `@aperant/framework` are documented here. See
|
|
4
4
|
[`VERSIONING.md`](VERSIONING.md) for the per-tier contract.
|
|
5
5
|
|
|
6
|
-
## 0.
|
|
6
|
+
## 0.13.0 — 2026-06-06 — Catch-up panel fires on `/apt` + router passthrough policy
|
|
7
|
+
|
|
8
|
+
> Validated as `0.13.0-next.0` on the `next` tag, then promoted to `latest`.
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **`passthrough_policy` skill frontmatter field** (`freetext` | `exact-only` |
|
|
13
|
+
`never`, optional, default `freetext`). Lets a skill declare whether a
|
|
14
|
+
first-word match triggers MODE: skill-passthrough or falls through to the
|
|
15
|
+
host-LLM `classify` path. Read like `task_context` / `default_track` (no
|
|
16
|
+
hardcoded slug list enters the router). The action-verb slugs `apt:triage`,
|
|
17
|
+
`apt:debug`, `apt:review`, `apt:improve` declare `exact-only`. See
|
|
18
|
+
[`docs/skill-passthrough.md`](docs/skill-passthrough.md).
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- **Catch-up panel never fired on `/apt`.** The panel + Last-Seen Marker were
|
|
23
|
+
gated on `isInteractiveTty()`, but the `/apt` skill invokes `apt-tools route`
|
|
24
|
+
via a captured, non-TTY subprocess, so the gate was always closed in
|
|
25
|
+
production (and the marker baseline was never written). The skill now passes
|
|
26
|
+
the explicit interactive signal `APT_FORCE_TTY=1` on its route call; spawned /
|
|
27
|
+
fan-out / background callers omit it (or set `APT_CATCH_UP_DISABLE=1`) so
|
|
28
|
+
nested calls stay strict no-ops. Adds a regression test exercising the real
|
|
29
|
+
non-TTY default condition + the two-call marker bootstrap.
|
|
30
|
+
- **Router first-word hijack of free-text that opens with an action verb.** A
|
|
31
|
+
sentence like "Triage the failing harness now" matched the bare first word
|
|
32
|
+
against `apt:triage` and dispatched skill-passthrough instead of classifying
|
|
33
|
+
the real (debugging) task. With `passthrough_policy: exact-only`, such slugs
|
|
34
|
+
passthrough only when the remainder is arg-shaped (empty / flags / paths /
|
|
35
|
+
numeric ids / short non-prose); a sentence falls through to `classify`, which
|
|
36
|
+
still carries the skill in the envelope so the host can re-select it
|
|
37
|
+
(self-healing). The `apt:review` PR-reference carve-out stays authoritative.
|
|
7
38
|
|
|
8
39
|
### Fixed
|
|
9
40
|
|
package/README.md
CHANGED
|
@@ -76,6 +76,16 @@ Runtime command surfaces differ slightly:
|
|
|
76
76
|
| **Framework** | `/apt:setup` | Change preferences (verification style, multi-model, parallelization, branching) |
|
|
77
77
|
| **Framework** | `/apt:update` | Refresh installed skills / agents / hooks across every runtime |
|
|
78
78
|
|
|
79
|
+
## Auto-spar plans
|
|
80
|
+
|
|
81
|
+
Have `/apt:run` challenge every plan with a second LLM before you approve. In `.aperant/config.local.json`:
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{ "spar": { "enabled": true, "partner": "codex" } }
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
`partner` = `codex` | `claude` | `gemini` (not your current CLI). Fires after the plan stage (STANDARD) or plan + execute (DEEP); QUICK is exempt. Or run `/apt:setup` → Pipeline → Sparring Auto-Fire.
|
|
88
|
+
|
|
79
89
|
## License
|
|
80
90
|
|
|
81
91
|
AGPL-3.0-only. See [LICENSE](LICENSE).
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure, deterministic classifier (ID-04) for the remainder after a slug's first
|
|
3
|
+
* word, used by the `exact-only` passthrough policy. Returns true when the
|
|
4
|
+
* remainder is ARG-SHAPED (→ passthrough) and false when it is PROSE-SHAPED
|
|
5
|
+
* (→ fall through to the host-LLM classify path). No I/O.
|
|
6
|
+
*
|
|
7
|
+
* Arg-shaped iff:
|
|
8
|
+
* 1. empty (bare slug, e.g. `triage`), OR
|
|
9
|
+
* 2. EVERY whitespace token is flag-shaped (`--fix-all` / `-x`), path-shaped
|
|
10
|
+
* (contains `/`, `\`, or `.` → `src/foo.ts`), or numeric/id-shaped
|
|
11
|
+
* (`42` / `#7`), OR
|
|
12
|
+
* 3. it is a SHORT phrase (≤3 tokens) that does NOT read like a sentence:
|
|
13
|
+
* the leading token is NOT sentence-case (`/^[A-Z]/` and not an ALL-CAPS
|
|
14
|
+
* acronym) AND no token is an English function/stop word.
|
|
15
|
+
*
|
|
16
|
+
* Otherwise prose-shaped → false. See ID-04's case table + TD-03 for the
|
|
17
|
+
* pinned contract.
|
|
18
|
+
*
|
|
19
|
+
* @param {string} remainder the slug's trailing args, already trimmed/joined
|
|
20
|
+
* @returns {boolean} true → arg-shaped (passthrough); false → prose (classify)
|
|
21
|
+
*/
|
|
22
|
+
export function isArgShapedRemainder(remainder: string): boolean;
|
|
1
23
|
export function cmdRoute(projectDir: any, extraArgs: any): import("../util/result.mjs").CommandResult;
|
|
2
24
|
/**
|
|
3
25
|
* Build track-aware autonomy options. Extracted so both the flag-override
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/route.mjs"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"route.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/route.mjs"],"names":[],"mappings":"AA8SA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,gDAHW,MAAM,GACJ,OAAO,CA4BnB;AAwDD,sGAoXC;AAED;;;GAGG;AACH;;;;;IAqGC"}
|
|
@@ -96,12 +96,26 @@ function readUpdateCheckCache() {
|
|
|
96
96
|
return null;
|
|
97
97
|
}
|
|
98
98
|
/**
|
|
99
|
-
* Is this an interactive
|
|
100
|
-
* are gated to interactive contexts (LD-02)
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
99
|
+
* Is this an interactive `/apt` call? The catch-up panel + Last-Seen Marker
|
|
100
|
+
* are gated to interactive contexts (LD-02) so spawned subagents, fan-out
|
|
101
|
+
* workers, and background/piped calls are strict no-ops (they neither read nor
|
|
102
|
+
* write the marker).
|
|
103
|
+
*
|
|
104
|
+
* The PRODUCTION trigger is the EXPLICIT interactive signal `APT_FORCE_TTY=1`,
|
|
105
|
+
* which the top-level `/apt` skill sets on its `apt-tools route` call
|
|
106
|
+
* (`skills/apt/SKILL.md`). The skill runs `route` via the Bash tool — a
|
|
107
|
+
* captured, non-TTY subprocess whose stdout/stderr are piped, never a PTY — so
|
|
108
|
+
* the `process.stdout/stderr.isTTY` sniff below is ALWAYS false on that path.
|
|
109
|
+
* The explicit signal is therefore the load-bearing opener; the isTTY sniff is
|
|
110
|
+
* only a SECONDARY fallback so a genuinely-interactive direct `apt-tools route`
|
|
111
|
+
* CLI call (a real terminal) still computes the panel.
|
|
112
|
+
*
|
|
113
|
+
* `APT_FORCE_TTY` does double duty: the test-override role AND the production
|
|
114
|
+
* interactive signal (no new env var — keeps the schema + opt-out unchanged).
|
|
115
|
+
* `APT_CATCH_UP_DISABLE` forces the gate closed so a background spawner can opt
|
|
116
|
+
* every nested call out (it wins over the signal). Spawned / fan-out / nested
|
|
117
|
+
* route calls deliberately set NEITHER (or set APT_CATCH_UP_DISABLE), so the
|
|
118
|
+
* panel never fires inside a sub-agent.
|
|
105
119
|
*/
|
|
106
120
|
function isInteractiveTty() {
|
|
107
121
|
if (process.env.APT_CATCH_UP_DISABLE === '1')
|
|
@@ -126,7 +140,7 @@ function isInteractiveTty() {
|
|
|
126
140
|
* isInteractiveTty), so background/spawned calls never touch the marker.
|
|
127
141
|
*
|
|
128
142
|
* @param {string} targetDir
|
|
129
|
-
* @returns {object|null} the catch_up panel, or null.
|
|
143
|
+
* @returns {{ welcome_back: object|null, team_digest: object|null }|null} the catch_up panel, or null.
|
|
130
144
|
*/
|
|
131
145
|
function computeCatchUpForRoute(targetDir) {
|
|
132
146
|
// Setup mirrors cmdCatchUp in commands/catch-up.mjs (recompute-only variant).
|
|
@@ -221,6 +235,115 @@ function normalizeAptInvocation(input) {
|
|
|
221
235
|
* a word char, which would exclude the bare-hashtag case `review #7`.
|
|
222
236
|
*/
|
|
223
237
|
const PR_REVIEW_SIGNAL = /(?:\bPR\s*#?\s*\d+|#\d+|\bpull\s*request\s*#?\s*\d+)\b/i;
|
|
238
|
+
/**
|
|
239
|
+
* English function/stop words used by `isArgShapedRemainder` (ID-04) to detect
|
|
240
|
+
* a prose-shaped remainder. Conservative on purpose: a remainder containing any
|
|
241
|
+
* of these reads like a sentence, so under `exact-only` it falls through to the
|
|
242
|
+
* host-LLM classify path instead of hijacking the slug. Hoisted to module scope
|
|
243
|
+
* (frozen) so the Set is built once at load time. Lowercase keys only — the
|
|
244
|
+
* helper lowercases tokens before lookup.
|
|
245
|
+
*/
|
|
246
|
+
const PASSTHROUGH_STOP_WORDS = Object.freeze(new Set([
|
|
247
|
+
'the',
|
|
248
|
+
'a',
|
|
249
|
+
'an',
|
|
250
|
+
'is',
|
|
251
|
+
'are',
|
|
252
|
+
'was',
|
|
253
|
+
'were',
|
|
254
|
+
'be',
|
|
255
|
+
'been',
|
|
256
|
+
'keeps',
|
|
257
|
+
'keep',
|
|
258
|
+
'now',
|
|
259
|
+
'please',
|
|
260
|
+
'that',
|
|
261
|
+
'this',
|
|
262
|
+
'these',
|
|
263
|
+
'those',
|
|
264
|
+
'my',
|
|
265
|
+
'our',
|
|
266
|
+
'your',
|
|
267
|
+
'their',
|
|
268
|
+
'it',
|
|
269
|
+
'its',
|
|
270
|
+
'to',
|
|
271
|
+
'of',
|
|
272
|
+
'in',
|
|
273
|
+
'on',
|
|
274
|
+
'at',
|
|
275
|
+
'for',
|
|
276
|
+
'and',
|
|
277
|
+
'but',
|
|
278
|
+
'or',
|
|
279
|
+
'so',
|
|
280
|
+
'then',
|
|
281
|
+
'when',
|
|
282
|
+
'while',
|
|
283
|
+
'because',
|
|
284
|
+
'i',
|
|
285
|
+
'we',
|
|
286
|
+
'they',
|
|
287
|
+
'you',
|
|
288
|
+
'fails',
|
|
289
|
+
'failing',
|
|
290
|
+
'failed',
|
|
291
|
+
'crashing',
|
|
292
|
+
'crashed',
|
|
293
|
+
'broken',
|
|
294
|
+
'with',
|
|
295
|
+
'from',
|
|
296
|
+
'into',
|
|
297
|
+
]));
|
|
298
|
+
/**
|
|
299
|
+
* Pure, deterministic classifier (ID-04) for the remainder after a slug's first
|
|
300
|
+
* word, used by the `exact-only` passthrough policy. Returns true when the
|
|
301
|
+
* remainder is ARG-SHAPED (→ passthrough) and false when it is PROSE-SHAPED
|
|
302
|
+
* (→ fall through to the host-LLM classify path). No I/O.
|
|
303
|
+
*
|
|
304
|
+
* Arg-shaped iff:
|
|
305
|
+
* 1. empty (bare slug, e.g. `triage`), OR
|
|
306
|
+
* 2. EVERY whitespace token is flag-shaped (`--fix-all` / `-x`), path-shaped
|
|
307
|
+
* (contains `/`, `\`, or `.` → `src/foo.ts`), or numeric/id-shaped
|
|
308
|
+
* (`42` / `#7`), OR
|
|
309
|
+
* 3. it is a SHORT phrase (≤3 tokens) that does NOT read like a sentence:
|
|
310
|
+
* the leading token is NOT sentence-case (`/^[A-Z]/` and not an ALL-CAPS
|
|
311
|
+
* acronym) AND no token is an English function/stop word.
|
|
312
|
+
*
|
|
313
|
+
* Otherwise prose-shaped → false. See ID-04's case table + TD-03 for the
|
|
314
|
+
* pinned contract.
|
|
315
|
+
*
|
|
316
|
+
* @param {string} remainder the slug's trailing args, already trimmed/joined
|
|
317
|
+
* @returns {boolean} true → arg-shaped (passthrough); false → prose (classify)
|
|
318
|
+
*/
|
|
319
|
+
export function isArgShapedRemainder(remainder) {
|
|
320
|
+
const trimmed = typeof remainder === 'string' ? remainder.trim() : '';
|
|
321
|
+
// 1. Empty / bare slug.
|
|
322
|
+
if (trimmed === '')
|
|
323
|
+
return true;
|
|
324
|
+
const tokens = trimmed.split(/\s+/);
|
|
325
|
+
const isFlag = (t) => /^--?[\w-]+$/.test(t);
|
|
326
|
+
const isPath = (t) => /[/\\.]/.test(t);
|
|
327
|
+
const isNumericId = (t) => /^#?\d+$/.test(t);
|
|
328
|
+
// 2. Every token is flag / path / numeric-id shaped.
|
|
329
|
+
if (tokens.every((t) => isFlag(t) || isPath(t) || isNumericId(t)))
|
|
330
|
+
return true;
|
|
331
|
+
// 3. Short phrase (≤3 tokens) that does not read like a sentence.
|
|
332
|
+
if (tokens.length > 3)
|
|
333
|
+
return false;
|
|
334
|
+
const lead = tokens[0];
|
|
335
|
+
// Sentence-case leading token (Capitalized, not an ALL-CAPS acronym) reads
|
|
336
|
+
// like the start of a prose sentence.
|
|
337
|
+
const isAllCapsAcronym = /^[A-Z0-9]+$/.test(lead);
|
|
338
|
+
if (/^[A-Z]/.test(lead) && !isAllCapsAcronym)
|
|
339
|
+
return false;
|
|
340
|
+
// Any English function/stop word anywhere → prose.
|
|
341
|
+
for (const t of tokens) {
|
|
342
|
+
if (PASSTHROUGH_STOP_WORDS.has(t.toLowerCase()))
|
|
343
|
+
return false;
|
|
344
|
+
}
|
|
345
|
+
return true;
|
|
346
|
+
}
|
|
224
347
|
/**
|
|
225
348
|
* Canonical skill-slug index — reads every skill's agent_name and
|
|
226
349
|
* spawns_agent flag from its frontmatter so the router doesn't carry a
|
|
@@ -237,7 +360,7 @@ const PR_REVIEW_SIGNAL = /(?:\bPR\s*#?\s*\d+|#\d+|\bpull\s*request\s*#?\s*\d+)\b
|
|
|
237
360
|
* so this keeps the two paths consistent.
|
|
238
361
|
*
|
|
239
362
|
* @param {import('../route/skill-discover.mjs').DiscoveredSkill[]} skills
|
|
240
|
-
* @returns {{ agentOf: (slug: string) => string|null, spawnsAgent: (slug: string) => boolean, taskContextOf: (slug: string) => string|null, defaultTrackOf: (slug: string) => string|null, knownSlugs: Set<string>, isUserInvocable: (slug: string) => boolean }}
|
|
363
|
+
* @returns {{ agentOf: (slug: string) => string|null, spawnsAgent: (slug: string) => boolean, taskContextOf: (slug: string) => string|null, defaultTrackOf: (slug: string) => string|null, passthroughPolicyOf: (slug: string) => 'freetext'|'exact-only'|'never', knownSlugs: Set<string>, isUserInvocable: (slug: string) => boolean }}
|
|
241
364
|
*/
|
|
242
365
|
function skillIndex(skills) {
|
|
243
366
|
const byName = new Map();
|
|
@@ -266,6 +389,9 @@ function skillIndex(skills) {
|
|
|
266
389
|
defaultTrackOf(slug) {
|
|
267
390
|
return byName.get(slug)?.default_track ?? null;
|
|
268
391
|
},
|
|
392
|
+
passthroughPolicyOf(slug) {
|
|
393
|
+
return byName.get(slug)?.passthrough_policy ?? 'freetext';
|
|
394
|
+
},
|
|
269
395
|
isUserInvocable(slug) {
|
|
270
396
|
return userInvocableSlugs.has(slug);
|
|
271
397
|
},
|
|
@@ -384,11 +510,13 @@ export function cmdRoute(projectDir, extraArgs) {
|
|
|
384
510
|
reason: 'workspace source ahead of installed kernel — run /apt:update --from-source',
|
|
385
511
|
};
|
|
386
512
|
}
|
|
387
|
-
// Catch-up panel (LD-11): lazy-compute on interactive
|
|
388
|
-
//
|
|
389
|
-
//
|
|
390
|
-
//
|
|
391
|
-
//
|
|
513
|
+
// Catch-up panel (LD-11): lazy-compute only on interactive `/apt` calls
|
|
514
|
+
// (explicit `APT_FORCE_TTY=1` signal preferred, TTY sniff fallback — see
|
|
515
|
+
// isInteractiveTty), and only when config exists (init has no config yet).
|
|
516
|
+
// The compute also advances the Last-Seen Marker after panel eval (LD-02).
|
|
517
|
+
// Non-interactive calls are strict no-ops — no read, no write, no field.
|
|
518
|
+
// Folded onto every returned envelope below as a top-level `catch_up` field,
|
|
519
|
+
// mirroring update_check.
|
|
392
520
|
const catch_up = hasConfig && isInteractiveTty() ? computeCatchUpForRoute(targetDir) : null;
|
|
393
521
|
// ---------------- Deterministic branches (zero-behavior-change) ----------------
|
|
394
522
|
// These fire regardless of host detection status — missing host is not
|
|
@@ -455,7 +583,34 @@ export function cmdRoute(projectDir, extraArgs) {
|
|
|
455
583
|
// src/__tests__/route-pr-review-skill.test.ts for the full contract.
|
|
456
584
|
// The PR_REVIEW_SIGNAL regex itself is defined at module scope above.
|
|
457
585
|
const isPrReviewFreetext = firstWord === 'review' && PR_REVIEW_SIGNAL.test(remainingArgs);
|
|
458
|
-
|
|
586
|
+
// Per-skill passthrough policy (Item 2). The policy lives in frontmatter and
|
|
587
|
+
// is read via the index — NO hardcoded slug list enters route.mjs.
|
|
588
|
+
// - freetext (default): always passthrough on a first-word match (today's
|
|
589
|
+
// behavior, byte-identical);
|
|
590
|
+
// - exact-only: passthrough only when the remainder is arg-shaped — a prose
|
|
591
|
+
// remainder ('Triage the failing harness now') falls through to
|
|
592
|
+
// classify (the classify envelope still carries the skill, so a
|
|
593
|
+
// wrong fall-through self-heals, unlike a silent hijack);
|
|
594
|
+
// - never: always classify.
|
|
595
|
+
// When the gate fails we do NOT early-return — control falls through to the
|
|
596
|
+
// classify path below, which still surfaces the skill for re-selection.
|
|
597
|
+
//
|
|
598
|
+
// The pre-existing `review` PR-review carve-out (isPrReviewFreetext) is the
|
|
599
|
+
// authoritative prose-vs-invocation discriminator for `review` and STAYS
|
|
600
|
+
// as-is this task (spec Out-of-Scope). So when the carve-out has already
|
|
601
|
+
// governed `review` (firstWord === 'review'), the exact-only heuristic is
|
|
602
|
+
// bypassed — applying both would double-gate `review` and break the locked
|
|
603
|
+
// PR-review false-positive walls (e.g. "review the pull request feature",
|
|
604
|
+
// no-digit → passthrough). The carve-out already routed every digit-bearing
|
|
605
|
+
// PR reference to classify above.
|
|
606
|
+
const policy = index.passthroughPolicyOf(firstWord);
|
|
607
|
+
const carveOutGovernsReview = firstWord === 'review';
|
|
608
|
+
const passthroughOk = policy === 'freetext' || carveOutGovernsReview
|
|
609
|
+
? true
|
|
610
|
+
: policy === 'never'
|
|
611
|
+
? false
|
|
612
|
+
: isArgShapedRemainder(remainingArgs);
|
|
613
|
+
if (!isPrReviewFreetext && index.knownSlugs.has(firstWord) && passthroughOk) {
|
|
459
614
|
const shouldSpawn = index.spawnsAgent(firstWord);
|
|
460
615
|
const gate_preview = previewGatesFor(firstWord);
|
|
461
616
|
const defaultTrack = index.defaultTrackOf(firstWord);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.mjs","sourceRoot":"","sources":["../../../src/cli/commands/route.mjs"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"route.mjs","sourceRoot":"","sources":["../../../src/cli/commands/route.mjs"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,10 @@ export type DiscoveredSkill = {
|
|
|
40
40
|
execution_modes: string[];
|
|
41
41
|
task_context: "create-new" | "require-existing" | "self-managed" | "none";
|
|
42
42
|
default_track: ("QUICK" | "STANDARD" | "DEEP" | "DEBUG") | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* router passthrough policy; always set (defaults to 'freetext' when the frontmatter omits it)
|
|
45
|
+
*/
|
|
46
|
+
passthrough_policy: "freetext" | "exact-only" | "never";
|
|
43
47
|
/**
|
|
44
48
|
* absolute path to the SKILL.md
|
|
45
49
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-discover.d.mts","sourceRoot":"","sources":["../../../src/cli/route/skill-discover.mjs"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skill-discover.d.mts","sourceRoot":"","sources":["../../../src/cli/route/skill-discover.mjs"],"names":[],"mappings":"AA8RA;;;;;;;GAOG;AACH,sCAEC;AAED;;;;;;;;;;;;;GAaG;AACH,mEAJG;IAAqB,SAAS,EAAtB,MAAM;IACS,mBAAmB,EAAlC,MAAM,EAAE;CAChB,GAAU,cAAc,CAc1B;;UA9Ra,MAAM;iBACN,MAAM;WACN,MAAM;YACN,MAAM;iBACN,MAAM;oBACN,OAAO;cACP,OAAO;kBACP,OAAO;gBACP,MAAM,GAAC,IAAI;WACX,MAAM,EAAE;4BACR,MAAM;qBACN,MAAM,EAAE;kBACR,YAAY,GAAC,kBAAkB,GAAC,cAAc,GAAC,MAAM;mBACrD,CAAC,OAAO,GAAC,UAAU,GAAC,MAAM,GAAC,OAAO,CAAC,GAAC,SAAS;;;;wBAC7C,UAAU,GAAC,YAAY,GAAC,OAAO;;;;eAC/B,MAAM;;;eAKN,MAAM;YACN,mBAAmB,GAAC,qBAAqB,GAAC,uBAAuB,GAAC,YAAY;;;;YAM9E,eAAe,EAAE;aACjB,cAAc,EAAE;mBAChB,MAAM,EAAE"}
|
|
@@ -39,6 +39,7 @@ const FRONTMATTER_RE = /^---\n([\s\S]*?)\n---\n/;
|
|
|
39
39
|
* @property {string[]} execution_modes
|
|
40
40
|
* @property {'create-new'|'require-existing'|'self-managed'|'none'} task_context
|
|
41
41
|
* @property {('QUICK'|'STANDARD'|'DEEP'|'DEBUG')|undefined} default_track
|
|
42
|
+
* @property {'freetext'|'exact-only'|'never'} passthrough_policy router passthrough policy; always set (defaults to 'freetext' when the frontmatter omits it)
|
|
42
43
|
* @property {string} file_path absolute path to the SKILL.md
|
|
43
44
|
*/
|
|
44
45
|
/**
|
|
@@ -158,6 +159,7 @@ function readSkill(file) {
|
|
|
158
159
|
execution_modes: Array.isArray(d.execution_modes) ? [...d.execution_modes] : [],
|
|
159
160
|
task_context: d.task_context,
|
|
160
161
|
default_track: d.default_track,
|
|
162
|
+
passthrough_policy: d.passthrough_policy ?? 'freetext',
|
|
161
163
|
file_path: file,
|
|
162
164
|
},
|
|
163
165
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-discover.mjs","sourceRoot":"","sources":["../../../src/cli/route/skill-discover.mjs"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACN,cAAc,EACd,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,QAAQ,GACR,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC/D,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAA;AACzC,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAA;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AAErE,MAAM,cAAc,GAAG,yBAAyB,CAAA;AAEhD
|
|
1
|
+
{"version":3,"file":"skill-discover.mjs","sourceRoot":"","sources":["../../../src/cli/route/skill-discover.mjs"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,24 @@ export const TASK_CONTEXTS: readonly string[];
|
|
|
41
41
|
* declaring it here lets a skill own its default without a router code change.
|
|
42
42
|
*/
|
|
43
43
|
export const TRACK_VALUES: readonly string[];
|
|
44
|
+
/**
|
|
45
|
+
* Per-skill router passthrough policy (Item-2 router fix). Controls whether the
|
|
46
|
+
* router's first-word skill-passthrough match passes through to this skill or
|
|
47
|
+
* falls through to the host-LLM classify path when the input is free-text prose:
|
|
48
|
+
* - `freetext` (default when omitted) — current behavior: any input whose
|
|
49
|
+
* first word equals the slug passes through, byte-identical.
|
|
50
|
+
* - `exact-only` — pass through ONLY when the remainder is arg-shaped (empty /
|
|
51
|
+
* bare slug, all flag-or-path-or-numeric tokens, or a short
|
|
52
|
+
* ≤3-token lowercase noun phrase). A prose-shaped remainder
|
|
53
|
+
* (sentence-case opener, English stop word, or >3 tokens) falls
|
|
54
|
+
* through to classify. Opt-in for action-verb slugs that are
|
|
55
|
+
* also everyday imperatives (triage/debug/review/improve).
|
|
56
|
+
* - `never` — reserved: always fall through to classify. No skill uses it
|
|
57
|
+
* this task; the value exists for symmetry + future use.
|
|
58
|
+
* Read by route.mjs via skillIndex.passthroughPolicyOf(slug) — no hardcoded
|
|
59
|
+
* slug list enters the router.
|
|
60
|
+
*/
|
|
61
|
+
export const PASSTHROUGH_POLICIES: readonly string[];
|
|
44
62
|
/**
|
|
45
63
|
* Required XML-style section tags that MUST appear (opening + closing) in the
|
|
46
64
|
* SKILL.md body. Order is not enforced — authors can lay out the sections
|
|
@@ -88,6 +106,9 @@ export const SkillFrontmatterSchema: z.ZodObject<{
|
|
|
88
106
|
default_track: z.ZodOptional<z.ZodEnum<{
|
|
89
107
|
[x: string]: string;
|
|
90
108
|
}>>;
|
|
109
|
+
passthrough_policy: z.ZodOptional<z.ZodEnum<{
|
|
110
|
+
[x: string]: string;
|
|
111
|
+
}>>;
|
|
91
112
|
triggers: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
92
113
|
color: z.ZodOptional<z.ZodString>;
|
|
93
114
|
produces: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.mts","sourceRoot":"","sources":["../../../src/cli/skill-author/contract.mjs"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contract.d.mts","sourceRoot":"","sources":["../../../src/cli/skill-author/contract.mjs"],"names":[],"mappings":"AAkOA;;;;;GAKG;AACH,0CAHW,OAAO,GACL,OAAO,KAAK,EAAE,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAI9F;AA5MD,sCAA4D;AAE5D;;;;GAIG;AACH,yCAAwD;AAExD;;;;GAIG;AACH,6CASE;AAEF;;GAEG;AACH,uCAeE;AAEF;;;;GAIG;AACH,gDAAoG;AAEpG;;;;;GAKG;AACH,8CAKE;AAEF;;;;GAIG;AACH,6CAAiF;AAEjF;;;;;;;;;;;;;;;;GAgBG;AACH,qDAAsF;AAEtF;;;;GAIG;AACH,kDAKE;AAEF;;;;GAIG;AACH,uDAAoG;AAepG;;;;;;;GAOG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+DG;kBAvMe,KAAK"}
|
|
@@ -91,6 +91,24 @@ export const TASK_CONTEXTS = Object.freeze([
|
|
|
91
91
|
* declaring it here lets a skill own its default without a router code change.
|
|
92
92
|
*/
|
|
93
93
|
export const TRACK_VALUES = Object.freeze(['QUICK', 'STANDARD', 'DEEP', 'DEBUG']);
|
|
94
|
+
/**
|
|
95
|
+
* Per-skill router passthrough policy (Item-2 router fix). Controls whether the
|
|
96
|
+
* router's first-word skill-passthrough match passes through to this skill or
|
|
97
|
+
* falls through to the host-LLM classify path when the input is free-text prose:
|
|
98
|
+
* - `freetext` (default when omitted) — current behavior: any input whose
|
|
99
|
+
* first word equals the slug passes through, byte-identical.
|
|
100
|
+
* - `exact-only` — pass through ONLY when the remainder is arg-shaped (empty /
|
|
101
|
+
* bare slug, all flag-or-path-or-numeric tokens, or a short
|
|
102
|
+
* ≤3-token lowercase noun phrase). A prose-shaped remainder
|
|
103
|
+
* (sentence-case opener, English stop word, or >3 tokens) falls
|
|
104
|
+
* through to classify. Opt-in for action-verb slugs that are
|
|
105
|
+
* also everyday imperatives (triage/debug/review/improve).
|
|
106
|
+
* - `never` — reserved: always fall through to classify. No skill uses it
|
|
107
|
+
* this task; the value exists for symmetry + future use.
|
|
108
|
+
* Read by route.mjs via skillIndex.passthroughPolicyOf(slug) — no hardcoded
|
|
109
|
+
* slug list enters the router.
|
|
110
|
+
*/
|
|
111
|
+
export const PASSTHROUGH_POLICIES = Object.freeze(['freetext', 'exact-only', 'never']);
|
|
94
112
|
/**
|
|
95
113
|
* Required XML-style section tags that MUST appear (opening + closing) in the
|
|
96
114
|
* SKILL.md body. Order is not enforced — authors can lay out the sections
|
|
@@ -148,6 +166,10 @@ export const SkillFrontmatterSchema = z
|
|
|
148
166
|
execution_modes: z.array(ExecutionModeSchema).min(1),
|
|
149
167
|
task_context: z.enum([...TASK_CONTEXTS]),
|
|
150
168
|
default_track: z.enum([...TRACK_VALUES]).optional(),
|
|
169
|
+
// Per-skill router passthrough policy (Item-2). OPTIONAL — omission
|
|
170
|
+
// resolves to 'freetext' in skill-discover.mjs (byte-identical to
|
|
171
|
+
// today), so every existing SKILL.md validates unchanged.
|
|
172
|
+
passthrough_policy: z.enum([...PASSTHROUGH_POLICIES]).optional(),
|
|
151
173
|
// Legacy / optional pass-throughs — kept as opt-in so migrations
|
|
152
174
|
// don't immediately break skills that carry them.
|
|
153
175
|
triggers: z.array(z.string()).optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.mjs","sourceRoot":"","sources":["../../../src/cli/skill-author/contract.mjs"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,wEAAwE;AACxE,0EAA0E;AAC1E,iDAAiD;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,4BAA4B,CAAA;AAE5D;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAA;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,WAAW;IACX,SAAS;IACT,SAAS;IACT,aAAa;IACb,QAAQ;IACR,MAAM;IACN,WAAW;IACX,OAAO;CACP,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,MAAM;IACN,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,SAAS;IACT,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,KAAK;CACL,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAA;AAEpG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1C,YAAY;IACZ,kBAAkB;IAClB,cAAc;IACd,MAAM;CACN,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAEjF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9C,aAAa;IACb,oBAAoB;IACpB,eAAe;IACf,WAAW;CACX,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CAAC,CAAA;AAEpG,SAAS,aAAa,CAAC,GAAG;IACzB,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACzC,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3C,OAAO,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE;IACrD,OAAO,EAAE,yBAAyB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,mBAAmB,8BAA8B;CACtH,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;AACvC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAA;AAExD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACrC,MAAM,CAAC;IACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,EAAE;QACxC,OAAO,EAAE,mCAAmC,gBAAgB,mCAAmC;KAC/F,CAAC;IACF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sDAAsD,CAAC;IACtF,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wDAAwD,CAAC;IACxF,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;IACzB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1B,sBAAsB,EAAE,mBAAmB;IAC3C,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;IACxC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnD,iEAAiE;IACjE,kDAAkD;IAClD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,sDAAsD;IACtD,gEAAgE;IAChE,+DAA+D;IAC/D,uEAAuE;IACvE,sEAAsE;IACtE,8BAA8B;IAC9B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,uEAAuE;IACvE,+DAA+D;IAC/D,gEAAgE;IAChE,yDAAyD;IACzD,+CAA+C;IAC/C,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjF,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC;KACD,WAAW,EAAE;KACb,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAC1B,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,0DAA0D;YACnE,IAAI,EAAE,CAAC,YAAY,CAAC;SACpB,CAAC,CAAA;IACH,CAAC;IACD,IACC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;QACnC,OAAO,IAAI,CAAC,sBAAsB,KAAK,QAAQ;QAC/C,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAC1D,CAAC;QACF,GAAG,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,yDAAyD,IAAI,CAAC,sBAAsB,IAAI;YACjG,IAAI,EAAE,CAAC,iBAAiB,CAAC;SACzB,CAAC,CAAA;IACH,CAAC;AACF,CAAC,CAAC,CAAA;AAEH;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAI;IACvC,OAAO,sBAAsB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AAC9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.mjs","sourceRoot":"","sources":["../../../src/cli/skill-author/contract.mjs"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,wEAAwE;AACxE,0EAA0E;AAC1E,iDAAiD;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,4BAA4B,CAAA;AAE5D;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAA;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,WAAW;IACX,SAAS;IACT,SAAS;IACT,aAAa;IACb,QAAQ;IACR,MAAM;IACN,WAAW;IACX,OAAO;CACP,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,MAAM;IACN,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,SAAS;IACT,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,KAAK;CACL,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAA;AAEpG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1C,YAAY;IACZ,kBAAkB;IAClB,cAAc;IACd,MAAM;CACN,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAEjF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;AAEtF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9C,aAAa;IACb,oBAAoB;IACpB,eAAe;IACf,WAAW;CACX,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CAAC,CAAA;AAEpG,SAAS,aAAa,CAAC,GAAG;IACzB,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACzC,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3C,OAAO,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE;IACrD,OAAO,EAAE,yBAAyB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,mBAAmB,8BAA8B;CACtH,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;AACvC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAA;AAExD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACrC,MAAM,CAAC;IACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,EAAE;QACxC,OAAO,EAAE,mCAAmC,gBAAgB,mCAAmC;KAC/F,CAAC;IACF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sDAAsD,CAAC;IACtF,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wDAAwD,CAAC;IACxF,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;IACzB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1B,sBAAsB,EAAE,mBAAmB;IAC3C,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;IACxC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnD,oEAAoE;IACpE,kEAAkE;IAClE,0DAA0D;IAC1D,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChE,iEAAiE;IACjE,kDAAkD;IAClD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,sDAAsD;IACtD,gEAAgE;IAChE,+DAA+D;IAC/D,uEAAuE;IACvE,sEAAsE;IACtE,8BAA8B;IAC9B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,uEAAuE;IACvE,+DAA+D;IAC/D,gEAAgE;IAChE,yDAAyD;IACzD,+CAA+C;IAC/C,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjF,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC;KACD,WAAW,EAAE;KACb,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAC1B,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,0DAA0D;YACnE,IAAI,EAAE,CAAC,YAAY,CAAC;SACpB,CAAC,CAAA;IACH,CAAC;IACD,IACC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;QACnC,OAAO,IAAI,CAAC,sBAAsB,KAAK,QAAQ;QAC/C,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAC1D,CAAC;QACF,GAAG,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,yDAAyD,IAAI,CAAC,sBAAsB,IAAI;YACjG,IAAI,EAAE,CAAC,iBAAiB,CAAC;SACzB,CAAC,CAAA;IACH,CAAC;AACF,CAAC,CAAC,CAAA;AAEH;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAI;IACvC,OAAO,sBAAsB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AAC9C,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aperant",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "AI coding framework — composable skills for planning, executing, verifying, and reviewing code with any LLM provider. Works as Claude Code commands, Codex tasks, or programmatically.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Mikalsen AI",
|
|
@@ -52,9 +52,16 @@ you must follow when classifying.
|
|
|
52
52
|
Before doing ANYTHING else, classify the user's input:
|
|
53
53
|
|
|
54
54
|
```bash
|
|
55
|
-
node packages/framework/bin/apt-tools.mjs route . --input "$ARGUMENTS"
|
|
55
|
+
APT_FORCE_TTY=1 node packages/framework/bin/apt-tools.mjs route . --input "$ARGUMENTS"
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
+
The `APT_FORCE_TTY=1` prefix is the EXPLICIT interactive signal — not a real
|
|
59
|
+
TTY — and it is what makes the catch-up panel compute on this top-level `/apt`
|
|
60
|
+
call (the Bash tool runs `route` as a captured, non-TTY subprocess, so the
|
|
61
|
+
isTTY sniff alone would never open the gate). Spawned-subagent, fan-out, and
|
|
62
|
+
background `route` calls deliberately OMIT this signal (or set
|
|
63
|
+
`APT_CATCH_UP_DISABLE=1`) so the panel never fires inside a nested call.
|
|
64
|
+
|
|
58
65
|
Parse the JSON result. The `mode` field determines what you do next. Display the routing decision to the user:
|
|
59
66
|
|
|
60
67
|
```
|
|
@@ -98,9 +105,10 @@ While you were away:
|
|
|
98
105
|
```
|
|
99
106
|
|
|
100
107
|
This is display-only here — the Last-Seen Marker advance happens in route.mjs,
|
|
101
|
-
not in this skill. The panel is computed lazily
|
|
102
|
-
|
|
103
|
-
|
|
108
|
+
not in this skill. The panel is computed lazily only when the explicit
|
|
109
|
+
interactive signal (`APT_FORCE_TTY=1`, set above) is present — NOT a real TTY;
|
|
110
|
+
non-TTY/background/spawned calls omit the signal and carry no `catch_up` field.
|
|
111
|
+
Do not call it an "activity feed", "changelog", or "notifications" — it is the
|
|
104
112
|
Welcome-Back Summary + Team-Change Digest.
|
|
105
113
|
|
|
106
114
|
Then proceed to the matching mode handler below. Do NOT deviate from the routing decision.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aperant/framework",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "AI coding framework — composable skills for planning, executing, verifying, and reviewing code with any LLM provider. Works as Claude Code commands, Codex tasks, or programmatically.",
|
|
5
5
|
"author": "Mikalsen AI <hello@mikalsen.ai>",
|
|
6
6
|
"type": "module",
|
package/skills/apt/SKILL.md
CHANGED
|
@@ -52,9 +52,16 @@ you must follow when classifying.
|
|
|
52
52
|
Before doing ANYTHING else, classify the user's input:
|
|
53
53
|
|
|
54
54
|
```bash
|
|
55
|
-
node packages/framework/bin/apt-tools.mjs route . --input "$ARGUMENTS"
|
|
55
|
+
APT_FORCE_TTY=1 node packages/framework/bin/apt-tools.mjs route . --input "$ARGUMENTS"
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
+
The `APT_FORCE_TTY=1` prefix is the EXPLICIT interactive signal — not a real
|
|
59
|
+
TTY — and it is what makes the catch-up panel compute on this top-level `/apt`
|
|
60
|
+
call (the Bash tool runs `route` as a captured, non-TTY subprocess, so the
|
|
61
|
+
isTTY sniff alone would never open the gate). Spawned-subagent, fan-out, and
|
|
62
|
+
background `route` calls deliberately OMIT this signal (or set
|
|
63
|
+
`APT_CATCH_UP_DISABLE=1`) so the panel never fires inside a nested call.
|
|
64
|
+
|
|
58
65
|
Parse the JSON result. The `mode` field determines what you do next. Display the routing decision to the user:
|
|
59
66
|
|
|
60
67
|
```
|
|
@@ -98,9 +105,10 @@ While you were away:
|
|
|
98
105
|
```
|
|
99
106
|
|
|
100
107
|
This is display-only here — the Last-Seen Marker advance happens in route.mjs,
|
|
101
|
-
not in this skill. The panel is computed lazily
|
|
102
|
-
|
|
103
|
-
|
|
108
|
+
not in this skill. The panel is computed lazily only when the explicit
|
|
109
|
+
interactive signal (`APT_FORCE_TTY=1`, set above) is present — NOT a real TTY;
|
|
110
|
+
non-TTY/background/spawned calls omit the signal and carry no `catch_up` field.
|
|
111
|
+
Do not call it an "activity feed", "changelog", or "notifications" — it is the
|
|
104
112
|
Welcome-Back Summary + Team-Change Digest.
|
|
105
113
|
|
|
106
114
|
Then proceed to the matching mode handler below. Do NOT deviate from the routing decision.
|
|
@@ -102,12 +102,26 @@ function readUpdateCheckCache() {
|
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
/**
|
|
105
|
-
* Is this an interactive
|
|
106
|
-
* are gated to interactive contexts (LD-02)
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
105
|
+
* Is this an interactive `/apt` call? The catch-up panel + Last-Seen Marker
|
|
106
|
+
* are gated to interactive contexts (LD-02) so spawned subagents, fan-out
|
|
107
|
+
* workers, and background/piped calls are strict no-ops (they neither read nor
|
|
108
|
+
* write the marker).
|
|
109
|
+
*
|
|
110
|
+
* The PRODUCTION trigger is the EXPLICIT interactive signal `APT_FORCE_TTY=1`,
|
|
111
|
+
* which the top-level `/apt` skill sets on its `apt-tools route` call
|
|
112
|
+
* (`skills/apt/SKILL.md`). The skill runs `route` via the Bash tool — a
|
|
113
|
+
* captured, non-TTY subprocess whose stdout/stderr are piped, never a PTY — so
|
|
114
|
+
* the `process.stdout/stderr.isTTY` sniff below is ALWAYS false on that path.
|
|
115
|
+
* The explicit signal is therefore the load-bearing opener; the isTTY sniff is
|
|
116
|
+
* only a SECONDARY fallback so a genuinely-interactive direct `apt-tools route`
|
|
117
|
+
* CLI call (a real terminal) still computes the panel.
|
|
118
|
+
*
|
|
119
|
+
* `APT_FORCE_TTY` does double duty: the test-override role AND the production
|
|
120
|
+
* interactive signal (no new env var — keeps the schema + opt-out unchanged).
|
|
121
|
+
* `APT_CATCH_UP_DISABLE` forces the gate closed so a background spawner can opt
|
|
122
|
+
* every nested call out (it wins over the signal). Spawned / fan-out / nested
|
|
123
|
+
* route calls deliberately set NEITHER (or set APT_CATCH_UP_DISABLE), so the
|
|
124
|
+
* panel never fires inside a sub-agent.
|
|
111
125
|
*/
|
|
112
126
|
function isInteractiveTty() {
|
|
113
127
|
if (process.env.APT_CATCH_UP_DISABLE === '1') return false
|
|
@@ -131,7 +145,7 @@ function isInteractiveTty() {
|
|
|
131
145
|
* isInteractiveTty), so background/spawned calls never touch the marker.
|
|
132
146
|
*
|
|
133
147
|
* @param {string} targetDir
|
|
134
|
-
* @returns {object|null} the catch_up panel, or null.
|
|
148
|
+
* @returns {{ welcome_back: object|null, team_digest: object|null }|null} the catch_up panel, or null.
|
|
135
149
|
*/
|
|
136
150
|
function computeCatchUpForRoute(targetDir) {
|
|
137
151
|
// Setup mirrors cmdCatchUp in commands/catch-up.mjs (recompute-only variant).
|
|
@@ -223,6 +237,118 @@ function normalizeAptInvocation(input) {
|
|
|
223
237
|
*/
|
|
224
238
|
const PR_REVIEW_SIGNAL = /(?:\bPR\s*#?\s*\d+|#\d+|\bpull\s*request\s*#?\s*\d+)\b/i
|
|
225
239
|
|
|
240
|
+
/**
|
|
241
|
+
* English function/stop words used by `isArgShapedRemainder` (ID-04) to detect
|
|
242
|
+
* a prose-shaped remainder. Conservative on purpose: a remainder containing any
|
|
243
|
+
* of these reads like a sentence, so under `exact-only` it falls through to the
|
|
244
|
+
* host-LLM classify path instead of hijacking the slug. Hoisted to module scope
|
|
245
|
+
* (frozen) so the Set is built once at load time. Lowercase keys only — the
|
|
246
|
+
* helper lowercases tokens before lookup.
|
|
247
|
+
*/
|
|
248
|
+
const PASSTHROUGH_STOP_WORDS = Object.freeze(
|
|
249
|
+
new Set([
|
|
250
|
+
'the',
|
|
251
|
+
'a',
|
|
252
|
+
'an',
|
|
253
|
+
'is',
|
|
254
|
+
'are',
|
|
255
|
+
'was',
|
|
256
|
+
'were',
|
|
257
|
+
'be',
|
|
258
|
+
'been',
|
|
259
|
+
'keeps',
|
|
260
|
+
'keep',
|
|
261
|
+
'now',
|
|
262
|
+
'please',
|
|
263
|
+
'that',
|
|
264
|
+
'this',
|
|
265
|
+
'these',
|
|
266
|
+
'those',
|
|
267
|
+
'my',
|
|
268
|
+
'our',
|
|
269
|
+
'your',
|
|
270
|
+
'their',
|
|
271
|
+
'it',
|
|
272
|
+
'its',
|
|
273
|
+
'to',
|
|
274
|
+
'of',
|
|
275
|
+
'in',
|
|
276
|
+
'on',
|
|
277
|
+
'at',
|
|
278
|
+
'for',
|
|
279
|
+
'and',
|
|
280
|
+
'but',
|
|
281
|
+
'or',
|
|
282
|
+
'so',
|
|
283
|
+
'then',
|
|
284
|
+
'when',
|
|
285
|
+
'while',
|
|
286
|
+
'because',
|
|
287
|
+
'i',
|
|
288
|
+
'we',
|
|
289
|
+
'they',
|
|
290
|
+
'you',
|
|
291
|
+
'fails',
|
|
292
|
+
'failing',
|
|
293
|
+
'failed',
|
|
294
|
+
'crashing',
|
|
295
|
+
'crashed',
|
|
296
|
+
'broken',
|
|
297
|
+
'with',
|
|
298
|
+
'from',
|
|
299
|
+
'into',
|
|
300
|
+
]),
|
|
301
|
+
)
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* Pure, deterministic classifier (ID-04) for the remainder after a slug's first
|
|
305
|
+
* word, used by the `exact-only` passthrough policy. Returns true when the
|
|
306
|
+
* remainder is ARG-SHAPED (→ passthrough) and false when it is PROSE-SHAPED
|
|
307
|
+
* (→ fall through to the host-LLM classify path). No I/O.
|
|
308
|
+
*
|
|
309
|
+
* Arg-shaped iff:
|
|
310
|
+
* 1. empty (bare slug, e.g. `triage`), OR
|
|
311
|
+
* 2. EVERY whitespace token is flag-shaped (`--fix-all` / `-x`), path-shaped
|
|
312
|
+
* (contains `/`, `\`, or `.` → `src/foo.ts`), or numeric/id-shaped
|
|
313
|
+
* (`42` / `#7`), OR
|
|
314
|
+
* 3. it is a SHORT phrase (≤3 tokens) that does NOT read like a sentence:
|
|
315
|
+
* the leading token is NOT sentence-case (`/^[A-Z]/` and not an ALL-CAPS
|
|
316
|
+
* acronym) AND no token is an English function/stop word.
|
|
317
|
+
*
|
|
318
|
+
* Otherwise prose-shaped → false. See ID-04's case table + TD-03 for the
|
|
319
|
+
* pinned contract.
|
|
320
|
+
*
|
|
321
|
+
* @param {string} remainder the slug's trailing args, already trimmed/joined
|
|
322
|
+
* @returns {boolean} true → arg-shaped (passthrough); false → prose (classify)
|
|
323
|
+
*/
|
|
324
|
+
export function isArgShapedRemainder(remainder) {
|
|
325
|
+
const trimmed = typeof remainder === 'string' ? remainder.trim() : ''
|
|
326
|
+
// 1. Empty / bare slug.
|
|
327
|
+
if (trimmed === '') return true
|
|
328
|
+
|
|
329
|
+
const tokens = trimmed.split(/\s+/)
|
|
330
|
+
|
|
331
|
+
const isFlag = (t) => /^--?[\w-]+$/.test(t)
|
|
332
|
+
const isPath = (t) => /[/\\.]/.test(t)
|
|
333
|
+
const isNumericId = (t) => /^#?\d+$/.test(t)
|
|
334
|
+
|
|
335
|
+
// 2. Every token is flag / path / numeric-id shaped.
|
|
336
|
+
if (tokens.every((t) => isFlag(t) || isPath(t) || isNumericId(t))) return true
|
|
337
|
+
|
|
338
|
+
// 3. Short phrase (≤3 tokens) that does not read like a sentence.
|
|
339
|
+
if (tokens.length > 3) return false
|
|
340
|
+
const lead = tokens[0]
|
|
341
|
+
// Sentence-case leading token (Capitalized, not an ALL-CAPS acronym) reads
|
|
342
|
+
// like the start of a prose sentence.
|
|
343
|
+
const isAllCapsAcronym = /^[A-Z0-9]+$/.test(lead)
|
|
344
|
+
if (/^[A-Z]/.test(lead) && !isAllCapsAcronym) return false
|
|
345
|
+
// Any English function/stop word anywhere → prose.
|
|
346
|
+
for (const t of tokens) {
|
|
347
|
+
if (PASSTHROUGH_STOP_WORDS.has(t.toLowerCase())) return false
|
|
348
|
+
}
|
|
349
|
+
return true
|
|
350
|
+
}
|
|
351
|
+
|
|
226
352
|
/**
|
|
227
353
|
* Canonical skill-slug index — reads every skill's agent_name and
|
|
228
354
|
* spawns_agent flag from its frontmatter so the router doesn't carry a
|
|
@@ -239,7 +365,7 @@ const PR_REVIEW_SIGNAL = /(?:\bPR\s*#?\s*\d+|#\d+|\bpull\s*request\s*#?\s*\d+)\b
|
|
|
239
365
|
* so this keeps the two paths consistent.
|
|
240
366
|
*
|
|
241
367
|
* @param {import('../route/skill-discover.mjs').DiscoveredSkill[]} skills
|
|
242
|
-
* @returns {{ agentOf: (slug: string) => string|null, spawnsAgent: (slug: string) => boolean, taskContextOf: (slug: string) => string|null, defaultTrackOf: (slug: string) => string|null, knownSlugs: Set<string>, isUserInvocable: (slug: string) => boolean }}
|
|
368
|
+
* @returns {{ agentOf: (slug: string) => string|null, spawnsAgent: (slug: string) => boolean, taskContextOf: (slug: string) => string|null, defaultTrackOf: (slug: string) => string|null, passthroughPolicyOf: (slug: string) => 'freetext'|'exact-only'|'never', knownSlugs: Set<string>, isUserInvocable: (slug: string) => boolean }}
|
|
243
369
|
*/
|
|
244
370
|
function skillIndex(skills) {
|
|
245
371
|
const byName = new Map()
|
|
@@ -267,6 +393,9 @@ function skillIndex(skills) {
|
|
|
267
393
|
defaultTrackOf(slug) {
|
|
268
394
|
return byName.get(slug)?.default_track ?? null
|
|
269
395
|
},
|
|
396
|
+
passthroughPolicyOf(slug) {
|
|
397
|
+
return byName.get(slug)?.passthrough_policy ?? 'freetext'
|
|
398
|
+
},
|
|
270
399
|
isUserInvocable(slug) {
|
|
271
400
|
return userInvocableSlugs.has(slug)
|
|
272
401
|
},
|
|
@@ -386,11 +515,13 @@ export function cmdRoute(projectDir, extraArgs) {
|
|
|
386
515
|
}
|
|
387
516
|
}
|
|
388
517
|
|
|
389
|
-
// Catch-up panel (LD-11): lazy-compute on interactive
|
|
390
|
-
//
|
|
391
|
-
//
|
|
392
|
-
//
|
|
393
|
-
//
|
|
518
|
+
// Catch-up panel (LD-11): lazy-compute only on interactive `/apt` calls
|
|
519
|
+
// (explicit `APT_FORCE_TTY=1` signal preferred, TTY sniff fallback — see
|
|
520
|
+
// isInteractiveTty), and only when config exists (init has no config yet).
|
|
521
|
+
// The compute also advances the Last-Seen Marker after panel eval (LD-02).
|
|
522
|
+
// Non-interactive calls are strict no-ops — no read, no write, no field.
|
|
523
|
+
// Folded onto every returned envelope below as a top-level `catch_up` field,
|
|
524
|
+
// mirroring update_check.
|
|
394
525
|
const catch_up = hasConfig && isInteractiveTty() ? computeCatchUpForRoute(targetDir) : null
|
|
395
526
|
|
|
396
527
|
// ---------------- Deterministic branches (zero-behavior-change) ----------------
|
|
@@ -465,7 +596,36 @@ export function cmdRoute(projectDir, extraArgs) {
|
|
|
465
596
|
// The PR_REVIEW_SIGNAL regex itself is defined at module scope above.
|
|
466
597
|
const isPrReviewFreetext = firstWord === 'review' && PR_REVIEW_SIGNAL.test(remainingArgs)
|
|
467
598
|
|
|
468
|
-
|
|
599
|
+
// Per-skill passthrough policy (Item 2). The policy lives in frontmatter and
|
|
600
|
+
// is read via the index — NO hardcoded slug list enters route.mjs.
|
|
601
|
+
// - freetext (default): always passthrough on a first-word match (today's
|
|
602
|
+
// behavior, byte-identical);
|
|
603
|
+
// - exact-only: passthrough only when the remainder is arg-shaped — a prose
|
|
604
|
+
// remainder ('Triage the failing harness now') falls through to
|
|
605
|
+
// classify (the classify envelope still carries the skill, so a
|
|
606
|
+
// wrong fall-through self-heals, unlike a silent hijack);
|
|
607
|
+
// - never: always classify.
|
|
608
|
+
// When the gate fails we do NOT early-return — control falls through to the
|
|
609
|
+
// classify path below, which still surfaces the skill for re-selection.
|
|
610
|
+
//
|
|
611
|
+
// The pre-existing `review` PR-review carve-out (isPrReviewFreetext) is the
|
|
612
|
+
// authoritative prose-vs-invocation discriminator for `review` and STAYS
|
|
613
|
+
// as-is this task (spec Out-of-Scope). So when the carve-out has already
|
|
614
|
+
// governed `review` (firstWord === 'review'), the exact-only heuristic is
|
|
615
|
+
// bypassed — applying both would double-gate `review` and break the locked
|
|
616
|
+
// PR-review false-positive walls (e.g. "review the pull request feature",
|
|
617
|
+
// no-digit → passthrough). The carve-out already routed every digit-bearing
|
|
618
|
+
// PR reference to classify above.
|
|
619
|
+
const policy = index.passthroughPolicyOf(firstWord)
|
|
620
|
+
const carveOutGovernsReview = firstWord === 'review'
|
|
621
|
+
const passthroughOk =
|
|
622
|
+
policy === 'freetext' || carveOutGovernsReview
|
|
623
|
+
? true
|
|
624
|
+
: policy === 'never'
|
|
625
|
+
? false
|
|
626
|
+
: isArgShapedRemainder(remainingArgs)
|
|
627
|
+
|
|
628
|
+
if (!isPrReviewFreetext && index.knownSlugs.has(firstWord) && passthroughOk) {
|
|
469
629
|
const shouldSpawn = index.spawnsAgent(firstWord)
|
|
470
630
|
const gate_preview = previewGatesFor(firstWord)
|
|
471
631
|
const defaultTrack = index.defaultTrackOf(firstWord)
|
|
@@ -50,6 +50,7 @@ const FRONTMATTER_RE = /^---\n([\s\S]*?)\n---\n/
|
|
|
50
50
|
* @property {string[]} execution_modes
|
|
51
51
|
* @property {'create-new'|'require-existing'|'self-managed'|'none'} task_context
|
|
52
52
|
* @property {('QUICK'|'STANDARD'|'DEEP'|'DEBUG')|undefined} default_track
|
|
53
|
+
* @property {'freetext'|'exact-only'|'never'} passthrough_policy router passthrough policy; always set (defaults to 'freetext' when the frontmatter omits it)
|
|
53
54
|
* @property {string} file_path absolute path to the SKILL.md
|
|
54
55
|
*/
|
|
55
56
|
|
|
@@ -170,6 +171,7 @@ function readSkill(file) {
|
|
|
170
171
|
execution_modes: Array.isArray(d.execution_modes) ? [...d.execution_modes] : [],
|
|
171
172
|
task_context: d.task_context,
|
|
172
173
|
default_track: d.default_track,
|
|
174
|
+
passthrough_policy: d.passthrough_policy ?? 'freetext',
|
|
173
175
|
file_path: file,
|
|
174
176
|
},
|
|
175
177
|
}
|
|
@@ -100,6 +100,25 @@ export const TASK_CONTEXTS = Object.freeze([
|
|
|
100
100
|
*/
|
|
101
101
|
export const TRACK_VALUES = Object.freeze(['QUICK', 'STANDARD', 'DEEP', 'DEBUG'])
|
|
102
102
|
|
|
103
|
+
/**
|
|
104
|
+
* Per-skill router passthrough policy (Item-2 router fix). Controls whether the
|
|
105
|
+
* router's first-word skill-passthrough match passes through to this skill or
|
|
106
|
+
* falls through to the host-LLM classify path when the input is free-text prose:
|
|
107
|
+
* - `freetext` (default when omitted) — current behavior: any input whose
|
|
108
|
+
* first word equals the slug passes through, byte-identical.
|
|
109
|
+
* - `exact-only` — pass through ONLY when the remainder is arg-shaped (empty /
|
|
110
|
+
* bare slug, all flag-or-path-or-numeric tokens, or a short
|
|
111
|
+
* ≤3-token lowercase noun phrase). A prose-shaped remainder
|
|
112
|
+
* (sentence-case opener, English stop word, or >3 tokens) falls
|
|
113
|
+
* through to classify. Opt-in for action-verb slugs that are
|
|
114
|
+
* also everyday imperatives (triage/debug/review/improve).
|
|
115
|
+
* - `never` — reserved: always fall through to classify. No skill uses it
|
|
116
|
+
* this task; the value exists for symmetry + future use.
|
|
117
|
+
* Read by route.mjs via skillIndex.passthroughPolicyOf(slug) — no hardcoded
|
|
118
|
+
* slug list enters the router.
|
|
119
|
+
*/
|
|
120
|
+
export const PASSTHROUGH_POLICIES = Object.freeze(['freetext', 'exact-only', 'never'])
|
|
121
|
+
|
|
103
122
|
/**
|
|
104
123
|
* Required XML-style section tags that MUST appear (opening + closing) in the
|
|
105
124
|
* SKILL.md body. Order is not enforced — authors can lay out the sections
|
|
@@ -160,6 +179,10 @@ export const SkillFrontmatterSchema = z
|
|
|
160
179
|
execution_modes: z.array(ExecutionModeSchema).min(1),
|
|
161
180
|
task_context: z.enum([...TASK_CONTEXTS]),
|
|
162
181
|
default_track: z.enum([...TRACK_VALUES]).optional(),
|
|
182
|
+
// Per-skill router passthrough policy (Item-2). OPTIONAL — omission
|
|
183
|
+
// resolves to 'freetext' in skill-discover.mjs (byte-identical to
|
|
184
|
+
// today), so every existing SKILL.md validates unchanged.
|
|
185
|
+
passthrough_policy: z.enum([...PASSTHROUGH_POLICIES]).optional(),
|
|
163
186
|
// Legacy / optional pass-throughs — kept as opt-in so migrations
|
|
164
187
|
// don't immediately break skills that carry them.
|
|
165
188
|
triggers: z.array(z.string()).optional(),
|