@event4u/agent-config 14.14.0 → 14.15.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/.augment-plugin/marketplace.json +3 -3
- package/.augment-plugin/plugin.json +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +63 -0
- package/README.md +1 -1
- package/dist/agent-src/commands/pr/create.md +16 -1
- package/dist/agent-src/contexts/execution/terminal-states.md +25 -4
- package/dist/agent-src/rules/missing-skill-recovery.md +2 -2
- package/dist/agent-src/rules/token-budget-discipline.md +2 -2
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/cli/registry.js +1 -0
- package/dist/cli-delegate/{chunk-ILMUPLGW.js → chunk-7RXIKF62.js} +159 -86
- package/dist/cli-delegate/cmd_conformance.js +513 -17
- package/dist/cli-delegate/cmd_doctor.js +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +5 -5
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +1 -1
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +2 -2
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +2 -2
- package/dist/hooks/dispatch.js +1043 -390
- package/dist/mcp/registry-manifest.json +2 -2
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +703 -115
- package/package.json +1 -1
- package/src/config/assurance-capability-registry.json +1 -1
- package/src/config/evaluator-budgets.json +4 -4
- package/src/config/gate-coverage.yml +62 -2
- package/src/config/gate-reachability-exemptions.json +1 -0
- package/src/config/gate-violation-baselines.json +4 -3
- package/src/config/rule-enforcement-baseline.json +0 -1
- package/src/config/web-launch-readiness.json +4 -2
- package/src/scripts/_cli/_doctor_emit.ts +71 -0
- package/src/scripts/_cli/_doctor_strict.ts +163 -0
- package/src/scripts/_cli/cmd_doctor.ts +16 -37
- package/src/scripts/_dispatch.bash +11 -0
- package/src/scripts/_lib/branch_convergence.ts +186 -0
- package/src/scripts/_lib/context_observation.ts +132 -0
- package/src/scripts/_lib/continuation_ladder.ts +188 -0
- package/src/scripts/_lib/experiment_binding.ts +95 -0
- package/src/scripts/_lib/ignored_blocker.ts +8 -1
- package/src/scripts/_lib/outcome_envelope.ts +6 -1
- package/src/scripts/_lib/outcome_vocabularies.ts +135 -5
- package/src/scripts/_lib/release_highlights.ts +75 -10
- package/src/scripts/_lib/repeated_failure.ts +19 -2
- package/src/scripts/_lib/runtime_journal.ts +11 -4
- package/src/scripts/check_agent_artifact_location.ts +337 -0
- package/src/scripts/check_artefact_count_messaging.ts +74 -8
- package/src/scripts/check_enforcement_coverage.ts +40 -1
- package/src/scripts/check_release_highlights.ts +17 -1
- package/src/scripts/check_web_launch_readiness.ts +310 -20
- package/src/scripts/evolution_lab.ts +53 -1
- package/src/scripts/generate_capability_matrix.ts +16 -9
- package/src/scripts/git_authorization_hook.ts +476 -6
- package/src/scripts/grade_target_readiness.ts +221 -2
- package/src/scripts/hook_effect_doctor.ts +47 -4
- package/src/scripts/hooks/block_unauthorized_git.ts +238 -9
- package/src/scripts/hooks/merge_impact.ts +207 -0
- package/src/scripts/hooks/run_continuation_hook.ts +78 -88
- package/src/scripts/hooks/session_eol_hook.ts +12 -1
- package/src/scripts/install-hooks.sh +18 -0
- package/src/scripts/lint_code_comments.ts +106 -1
- package/src/scripts/release.ts +5 -17
- package/src/scripts/release_drill.ts +76 -1
- package/src/scripts/release_env.ts +31 -0
- package/src/scripts/release_publication.ts +125 -1
- package/src/scripts/roadmap_context.ts +15 -0
- package/src/scripts/skill_scout.ts +633 -0
- package/src/scripts/sync_pr_branch.ts +521 -42
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "event4u-agent-config",
|
|
3
3
|
"description": "Governed agent system — skills, rules, commands, and guidelines for AI-assisted development.",
|
|
4
|
-
"version": "14.
|
|
4
|
+
"version": "14.15.0",
|
|
5
5
|
"owner": {
|
|
6
6
|
"name": "event4u",
|
|
7
7
|
"email": "dev@event4u.app"
|
|
8
8
|
},
|
|
9
9
|
"metadata": {
|
|
10
10
|
"description": "A policy-driven execution system that enforces quality, consistency, and developer-like behavior for AI agents.",
|
|
11
|
-
"version": "14.
|
|
11
|
+
"version": "14.15.0"
|
|
12
12
|
},
|
|
13
13
|
"plugins": [
|
|
14
14
|
{
|
|
15
15
|
"name": "agent-config",
|
|
16
16
|
"description": "Full governed agent system — rules, skills, commands, guidelines, and runtime tooling.",
|
|
17
|
-
"version": "14.
|
|
17
|
+
"version": "14.15.0",
|
|
18
18
|
"source": ".",
|
|
19
19
|
"category": "governance",
|
|
20
20
|
"tags": [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-config",
|
|
3
3
|
"description": "A governed skill framework for AI agents — runtime execution, tooling, observability, feedback, and lifecycle management with policy-driven quality enforcement.",
|
|
4
|
-
"version": "14.
|
|
4
|
+
"version": "14.15.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "event4u",
|
|
7
7
|
"email": "dev@event4u.app"
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Bootstrap shim for the event4u agent-config suite. This plugin ships ONLY the dispatcher hooks plus one install-pointer skill — ALL content (skills, rules, commands) is installed via `npx -y @event4u/agent-config init`, which writes the file projection AND registers the same hooks in ~/.claude/settings.json. DEPRECATED as a content channel; kept so the marketplace listing stays discoverable and existing installs keep working hooks.",
|
|
9
|
-
"version": "14.
|
|
9
|
+
"version": "14.15.0",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"agent-config",
|
|
12
12
|
"skills",
|
package/CHANGELOG.md
CHANGED
|
@@ -434,6 +434,69 @@ Entry-shape contract: [`docs/contracts/CHANGELOG-conventions.md`](docs/contracts
|
|
|
434
434
|
> that forces a new era split (`# Era: 14.15.x`, etc.) — see
|
|
435
435
|
> [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
|
|
436
436
|
|
|
437
|
+
## [14.15.0](https://github.com/event4u-app/agent-config/compare/14.14.1...14.15.0) (2026-09-03)
|
|
438
|
+
|
|
439
|
+
### Release highlights
|
|
440
|
+
|
|
441
|
+
- **Behaviour changes:** stage-2 impact scan, so a refused merge can be answered in four words (5a3b7c5).
|
|
442
|
+
- **Default changes + migration:** _none_
|
|
443
|
+
- **Security and correctness:** make the derived head publishable, so a release stops halting by construction (e6f6744); ask for the curated head before the release commit, not after (e31f07a).
|
|
444
|
+
- **Honest nulls:** _none_
|
|
445
|
+
- **Known limitations:** _none_
|
|
446
|
+
|
|
447
|
+
### Features
|
|
448
|
+
|
|
449
|
+
* **authz:** stage-2 impact scan, so a refused merge can be answered in four words ([5a3b7c5](https://github.com/event4u-app/agent-config/commit/5a3b7c5064b2e92523781530cbfe6ef09bd26f35))
|
|
450
|
+
* **authz:** classify the 17 destructive operations the guard could not see ([a1327b2](https://github.com/event4u-app/agent-config/commit/a1327b2767751d4ce6e680af1b8f9732faf97b88))
|
|
451
|
+
* **authz:** target-bound merge grants that outlive the clock ([c286570](https://github.com/event4u-app/agent-config/commit/c286570d1e9a421a51571bb27e3a2945a54e8f8c))
|
|
452
|
+
|
|
453
|
+
### Bug Fixes
|
|
454
|
+
|
|
455
|
+
* **docs:** cite the head label as code, not bold — the ratchet counts bold ([3f78ead](https://github.com/event4u-app/agent-config/commit/3f78ead4fd9023ed189ccd15aac2659397072ca8))
|
|
456
|
+
* **release:** make the derived head publishable, so a release stops halting by construction ([e6f6744](https://github.com/event4u-app/agent-config/commit/e6f67444c0c11873f6231fd007b70b404f9e883a))
|
|
457
|
+
* **ci:** drop code-comment-discipline from the rule-enforcement baseline ([731924a](https://github.com/event4u-app/agent-config/commit/731924ae778191bafefb3bbcfcb92c2acf76b558))
|
|
458
|
+
* **release:** ask for the curated head before the release commit, not after ([e31f07a](https://github.com/event4u-app/agent-config/commit/e31f07ab8bb4b25e048f1b4c78ffa32b27fd59f5))
|
|
459
|
+
|
|
460
|
+
### Documentation
|
|
461
|
+
|
|
462
|
+
* **adr:** ADR-252 evidence section, and the census it moves ([19e99a4](https://github.com/event4u-app/agent-config/commit/19e99a4febfc6e9f8d092ecafc8c8e23c8f1699e))
|
|
463
|
+
* **adr:** ADR-252 supersedes ADR-251 — specificity replaces recency, for merge only ([ef930e0](https://github.com/event4u-app/agent-config/commit/ef930e01d450a4b78730f545a4f04eab1812eccb))
|
|
464
|
+
|
|
465
|
+
Tests: 20922 (+146 since 14.14.1)
|
|
466
|
+
|
|
467
|
+
## [14.14.1](https://github.com/event4u-app/agent-config/compare/14.14.0...14.14.1) (2026-09-03)
|
|
468
|
+
|
|
469
|
+
### Release highlights
|
|
470
|
+
|
|
471
|
+
- **Behaviour changes:** four new read-only surfaces, all additive — `agent-config hooks:effect`, which dispatches each bound concern against a scratch root and reports whether it actually fired rather than whether the manifest binds it (b0a03a7); `doctor --strict`, carrying the failing exit as a separate mode so `doctor` itself keeps its always-zero exit and no existing caller changes (517afcb, the `doctor-exit-contract` choice); and the `dev:skill-scout` and `push-ready` Taskfile targets (576ff4f, 6735abf). No public artefact was removed in this span.
|
|
472
|
+
- **Default changes + migration:** _none_
|
|
473
|
+
- **Security and correctness:** `skill_scout` confines a human-supplied candidate name to a single path segment and asserts resolved-path containment BEFORE it reports a scan scope, so a traversing name is refused rather than normalised and the scan-scope line can never record a root it did not scan; it also re-checks file type and size at read time, closing a post-intake symlink that was followed out of the quarantine directory (576ff4f). Three runtime advisories that were failing the `npm audit --omit=dev --audit-level=high` gate are cleared (54f0242).
|
|
474
|
+
- **Honest nulls:** the deferred council-topology carrier's two resumption triggers were re-measured live and neither had moved — Phase 2 needs five independent eligible council seats and `council:status` reports two of five; Phase 3 needs a two-day spend reservation that does not exist. The carrier stays parked with all 38 obligations in place, and no third disposition record was written (1fe6fa0).
|
|
475
|
+
- **Known limitations:** the README daemon-claim repair is verified only one way. `check_claims` exiting 0 proves the retired phrasing is gone; it does NOT validate the replacement wording, because `README.md:30` is unmarkered prose (e200ba2). And `check_source_size_budget`'s excess is still five figures — this span lowered it 18,245 → 18,205 by moving prose and helpers under the 1500-line cap, not by removing debt.
|
|
476
|
+
|
|
477
|
+
### Bug Fixes
|
|
478
|
+
|
|
479
|
+
* **deps:** clear the three runtime advisories failing the audit gate (#1822) ([54f0242](https://github.com/event4u-app/agent-config/commit/54f024250c67781e34e6242450fdf97d9165bfee))
|
|
480
|
+
* **release:** refuse an uncurated head before the first remote state (#1813) ([2b3d2b3](https://github.com/event4u-app/agent-config/commit/2b3d2b3474e6520ef696466aff583a76381f002c))
|
|
481
|
+
|
|
482
|
+
### Documentation
|
|
483
|
+
|
|
484
|
+
* **evidence:** record drain run 18 (#1823) ([76ed568](https://github.com/event4u-app/agent-config/commit/76ed5684367667000ed5b1bd2bc5af13bdef8943))
|
|
485
|
+
|
|
486
|
+
### Other
|
|
487
|
+
|
|
488
|
+
* complete road-to-wired-instruments (#1818) ([b0a03a7](https://github.com/event4u-app/agent-config/commit/b0a03a7af314cb231f4385005f7d73e8a6ca5dd4))
|
|
489
|
+
* complete road-to-self-description-truth (#1817) ([e200ba2](https://github.com/event4u-app/agent-config/commit/e200ba2f97590d2686bd9a292cf54025fb47cee2))
|
|
490
|
+
* complete road-to-governed-skill-scouting (#1815) ([576ff4f](https://github.com/event4u-app/agent-config/commit/576ff4fcc2568e7619ff489ddcf301f32f30da9f))
|
|
491
|
+
* complete road-to-ship-control-coverage (#1816) ([5a0ca3a](https://github.com/event4u-app/agent-config/commit/5a0ca3a16fb8f0ab54df734de885abee8c8fedff))
|
|
492
|
+
* complete road-to-artifact-location-and-doctor-reach (#1819) ([517afcb](https://github.com/event4u-app/agent-config/commit/517afcb524d201ad08b5d820638d84b2b3cdeb7b))
|
|
493
|
+
* complete road-to-cascading-base-integration (#1821) ([6735abf](https://github.com/event4u-app/agent-config/commit/6735abf3f789bd2d1549aa02937189ba9fe2b952))
|
|
494
|
+
* **topology:** repair three claims that went false, and record why the carrier stays parked (#1820) ([1fe6fa0](https://github.com/event4u-app/agent-config/commit/1fe6fa0fb3facfa7e735b68ee92e04616fbb3843))
|
|
495
|
+
* six survivors of the 2026-09-b inbox round (#1814) ([0415101](https://github.com/event4u-app/agent-config/commit/04151017860e0066e20832bdee49221e047ee33e))
|
|
496
|
+
* park governed-evidence-production to later/, and resolve metered-backend-park with (b) (#1811) ([c6b4f64](https://github.com/event4u-app/agent-config/commit/c6b4f640736c78554d7ce03f27257f44368ef1ae))
|
|
497
|
+
|
|
498
|
+
Tests: 20776 (+215 since 14.14.0)
|
|
499
|
+
|
|
437
500
|
## [14.14.0](https://github.com/event4u-app/agent-config/compare/14.13.0...14.14.0) (2026-09-02)
|
|
438
501
|
|
|
439
502
|
### Release highlights
|
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ It is both deep **and** disciplined — and honest about what it deliberately is
|
|
|
27
27
|
- **Surgical uninstall** — removes only its own keys from a shared host config (matched by JSON-pointer + SHA-256), never a neighbour tool's entries.<!-- claim:surgical-uninstall -->
|
|
28
28
|
- **Pack-scoped install** — writes the active pack only, not a 500-artefact dump.
|
|
29
29
|
|
|
30
|
-
**What it deliberately is *not*** — the core is a governance layer with optional, individually opt-in embedded engines (code intelligence, gated reach, the setup GUI, the bench lab — [ADR-124](docs/decisions/ADR-124-embedded-engine-doctrine.md)): **no
|
|
30
|
+
**What it deliberately is *not*** — the core is a governance layer with optional, individually opt-in embedded engines (code intelligence, gated reach, the setup GUI, the bench lab — [ADR-124](docs/decisions/ADR-124-embedded-engine-doctrine.md)): **no mandatory or always-on daemon, no separate state database, no self-rewriting memory, no auto-build pipeline.** Engines are never mandatory, never default-on without measured lift, and terminate with the command that invoked them. The host agent runs the loop; every learned change is human-reviewed; the same layer stays portable across tools. Capability without a process to babysit.
|
|
31
31
|
|
|
32
32
|
> **Where this comes from (honest provenance).** The skills, rules and personas
|
|
33
33
|
> are distilled from real production work on TypeScript and PHP codebases. The
|
|
@@ -149,10 +149,25 @@ than less: the gate can now read the PR's real `baseRefName` from the forge, so
|
|
|
149
149
|
a stacked or release-line PR is measured against the branch it will actually
|
|
150
150
|
merge into instead of against the repo default.
|
|
151
151
|
|
|
152
|
+
**The whole SEQUENCE is executable now, not just this step.** All six steps —
|
|
153
|
+
fetch, integrate the base set, regenerate, verify, re-check freshness, then hand
|
|
154
|
+
the push back to you — sit behind one runner, and a dry mode prints each step
|
|
155
|
+
with its outcome without touching the tree. In this package that runner is the
|
|
156
|
+
`push-ready` target in `taskfiles/dev.yml`; a consumer project wires the same
|
|
157
|
+
six steps behind whatever its own task runner is, with steps 3 and 4 being its
|
|
158
|
+
own generator and verify commands. The pre-push hook refuses and points at the
|
|
159
|
+
runner; the hook never merges, because a merge inside `pre-push` rewrites the
|
|
160
|
+
tree at the moment you believe your work is finished.
|
|
161
|
+
|
|
152
162
|
**The resolution is executable now, not just described.**
|
|
153
163
|
`./scripts-run src/scripts/sync_pr_branch` resolves the base from the open PR
|
|
154
164
|
(so a stacked or release-line PR is measured against what it actually merges
|
|
155
|
-
into), fetches, and merges it in when the branch is behind.
|
|
165
|
+
into), fetches, and merges it in when the branch is behind. The base is a
|
|
166
|
+
**set**: when the PR targets something other than the default branch, whether
|
|
167
|
+
the default branch joins the set is a per-target policy read from the *target's
|
|
168
|
+
own commit*, never from this branch — see `src/scripts/_lib/branch_convergence.ts`.
|
|
169
|
+
A non-default target with no policy entry is refused, not guessed. The default
|
|
170
|
+
is merged first, so a conflict surfaces against the broader base first. On a conflict it
|
|
156
171
|
STOPS and splits the conflicted paths into generated, remeasured and authored —
|
|
157
172
|
the first has one correct resolution (regenerate), the second's is to re-run the
|
|
158
173
|
measurement on the merged tree (a ratchet baseline, where picking a side is how
|
|
@@ -10,7 +10,7 @@ identically to a win: a loop that hit its iteration cap, a gate that could not
|
|
|
10
10
|
run, an approval that never came — each ending with a summary that says the work
|
|
11
11
|
is done.
|
|
12
12
|
|
|
13
|
-
## The
|
|
13
|
+
## The seven states
|
|
14
14
|
|
|
15
15
|
| state | what it means | what it is NOT |
|
|
16
16
|
|---|---|---|
|
|
@@ -20,6 +20,23 @@ is done.
|
|
|
20
20
|
| `approval-required` | The work is ready and the next action crosses a gate the agent may not cross alone. | Not `blocked`: nothing is missing, and the run produced a deliverable. |
|
|
21
21
|
| `exhausted` | A declared budget ran out — iterations, tokens, spend, wall-clock. | **Never** `success`, whatever partial progress exists. The cap firing IS the outcome. |
|
|
22
22
|
| `stagnated` | The budget has not run out and progress has stopped: the same failure signature is repeating. | Not `exhausted`. Stagnation is detected by a NO-PROGRESS signal, not by a counter. |
|
|
23
|
+
| `premise-invalidated` | The plan premise moved: the situational-awareness fingerprint the run engaged under (`origin/main` plus every open PR head) was re-observed and differs. | Not `exhausted` — the budget is untouched. Not `stagnated` — progress may have been fine. Not `blocked` — nothing is missing; what the run knew went stale. |
|
|
24
|
+
|
|
25
|
+
**Why `premise-invalidated` is not `blocked` with a reason field.** Added
|
|
26
|
+
2026-09-03 (AI council, unanimous) when the continuation ladder needed a word for
|
|
27
|
+
a run whose base ref and open-PR set had moved under it. Reusing `blocked` keeps
|
|
28
|
+
the arity at six and loses two things that are not decorative: the ability to
|
|
29
|
+
COUNT premise invalidation separately from a missing precondition, and
|
|
30
|
+
type-enforced exhaustive handling in the consumers that switch on the state. The
|
|
31
|
+
remedies differ as sharply as `exhausted` and `stagnated` do — `blocked` says
|
|
32
|
+
obtain the missing thing, `premise-invalidated` says re-probe and re-plan against
|
|
33
|
+
the world as it now is.
|
|
34
|
+
|
|
35
|
+
A consumer that cannot represent it reports `blocked`, which is the DECLARED
|
|
36
|
+
downgrade in `_lib/outcome_vocabularies.ts` and not an ad-hoc substitution. The
|
|
37
|
+
value domain is versioned (`RUN_TERMINAL_VOCABULARY_VERSION`, v2), and a reader
|
|
38
|
+
meeting an unrecognised persisted value reports it as not-recorded rather than
|
|
39
|
+
crashing or guessing.
|
|
23
40
|
|
|
24
41
|
**Why `exhausted` and `stagnated` are separate**, when both stop a loop: they
|
|
25
42
|
have different remedies and different next actions. `exhausted` says *the work
|
|
@@ -40,8 +57,8 @@ budget-exhausted stop indistinguishable from a completed one in a dashboard.
|
|
|
40
57
|
| `[~]` | deferred | `blocked` or `approval-required`, undistinguished |
|
|
41
58
|
| `[-]` | cancelled | *(a decision, not a run outcome)* |
|
|
42
59
|
|
|
43
|
-
**
|
|
44
|
-
|
|
60
|
+
**Four states have no glyph, and they are exactly the ones a validation budget,
|
|
61
|
+
a hard-blocker class and a drift detector produce:**
|
|
45
62
|
|
|
46
63
|
1. **`exhausted`** — the run stopped at its cap with the step still open. The
|
|
47
64
|
glyph stays `[ ]`, which is identical to *never attempted*. A reader cannot
|
|
@@ -51,6 +68,8 @@ and a hard-blocker class produce:**
|
|
|
51
68
|
3. **`approval-required`** — collapses into `[~]` alongside `blocked`, so a
|
|
52
69
|
roadmap cannot show that the work is FINISHED and waiting on a human, versus
|
|
53
70
|
not startable at all.
|
|
71
|
+
4. **`premise-invalidated`** — same `[ ]` again, and the reader cannot see that
|
|
72
|
+
the step was not attempted because the plan it belonged to went stale.
|
|
54
73
|
|
|
55
74
|
**This is recorded rather than fixed.** Adding glyphs would change a format that
|
|
56
75
|
`update_roadmap_progress`, `check_roadmap_trackable`, `lint_empty_roadmaps` and
|
|
@@ -75,11 +94,13 @@ applies unchanged.
|
|
|
75
94
|
|
|
76
95
|
## Reporting contract
|
|
77
96
|
|
|
78
|
-
A closing report names the state **by one of the
|
|
97
|
+
A closing report names the state **by one of the seven words above**, and where the
|
|
79
98
|
state is not `success` it names what would change it:
|
|
80
99
|
|
|
81
100
|
- `exhausted` — the budget that ran out, its value, and what was achieved inside it.
|
|
82
101
|
- `stagnated` — the repeating failure signature, and the attempts it survived.
|
|
102
|
+
- `premise-invalidated` — which fingerprint was claimed, which was observed, and
|
|
103
|
+
that the next act is a re-probe rather than another iteration.
|
|
83
104
|
- `blocked` — the missing thing, by name.
|
|
84
105
|
- `approval-required` — the exact action awaiting approval.
|
|
85
106
|
- `clean-no-op` — what was scanned, so "nothing to do" is distinguishable from
|
|
@@ -31,8 +31,8 @@ and dropped **402 entries** from the model-visible skills list
|
|
|
31
31
|
projection moved that to 330 and stripped the descriptions anyway.
|
|
32
32
|
|
|
33
33
|
402 is the **host's own count against the host's own denominator**, which is not
|
|
34
|
-
this package's:
|
|
35
|
-
magnitude, never a subtraction anyone can perform. What it establishes is that
|
|
34
|
+
this package's: that install projected 297 skills <!-- count: dated -->, so the figure
|
|
35
|
+
is a magnitude, never a subtraction anyone can perform. What it establishes is that
|
|
36
36
|
most of the catalogue is not model-visible — which is all this rule needs.
|
|
37
37
|
|
|
38
38
|
So "I do not see a skill for this" is evidence about the **delivery**, never
|
|
@@ -57,8 +57,8 @@ A skill claiming `rich` MUST satisfy ALL three:
|
|
|
57
57
|
carry a `load_context` pointer instead.
|
|
58
58
|
|
|
59
59
|
3. **≤ 15 % of the suite's skills may claim `rich`** — the CI linter counts
|
|
60
|
-
rich-tagged skills and hard-fails if the ratio is exceeded. With
|
|
61
|
-
|
|
60
|
+
rich-tagged skills and hard-fails if the ratio is exceeded. With 299 skills
|
|
61
|
+
the cap is ~44. Do not claim `rich` for convenience; claim it only for
|
|
62
62
|
irreducible-complexity skills.
|
|
63
63
|
|
|
64
64
|
## Telegraph-speak amendment
|
|
@@ -39,7 +39,7 @@ schema_version: 1
|
|
|
39
39
|
# CI guard: a release bump of `package.json` must update this value
|
|
40
40
|
# in lockstep — see scripts/check_template_pin_drift.ts (road-to-
|
|
41
41
|
# portable-runtime-and-update-check P3.3).
|
|
42
|
-
agent_config_version: "14.
|
|
42
|
+
agent_config_version: "14.15.0"
|
|
43
43
|
|
|
44
44
|
# --- Project identity ---
|
|
45
45
|
project:
|
package/dist/cli/registry.js
CHANGED
|
@@ -77,6 +77,7 @@ export const REGISTRY = [
|
|
|
77
77
|
{ name: 'hooks:install', disposition: 'delegate', synopsis: 'Install the combined pre-commit hook.' },
|
|
78
78
|
{ name: 'hooks:status', disposition: 'delegate', synopsis: 'Print the runtime hook matrix (per-platform install + bindings).' },
|
|
79
79
|
{ name: 'hooks:doctor', disposition: 'delegate', synopsis: 'Diagnose hook health: concerns, posture, missing trampolines (read-only).' },
|
|
80
|
+
{ name: 'hooks:effect', disposition: 'delegate', synopsis: 'Does a bound concern actually FIRE here? Sandboxed synthetic dispatch per concern; five per-concern states, four host verdicts (read-only).' },
|
|
80
81
|
{ name: 'routing:doctor', disposition: 'delegate', synopsis: 'Live routing diagnosis: per-gate ACTIVE/INACTIVE with reason, chain, freshness, orchestration state (read-only).' },
|
|
81
82
|
{ name: 'workspace:doctor', disposition: 'delegate', synopsis: 'Workspace identity with provenance (repo root, main worktree, current worktree, branch, PR base) + session claim and worktree pressure (read-only).' },
|
|
82
83
|
{ name: 'route:explain', disposition: 'delegate', synopsis: 'Deterministic rule-routing trace for one prompt: matched triggers, tier, disposition, budget, rejected candidates (trigger-match level only).' },
|