@event4u/agent-config 2.10.0 → 2.12.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/.agent-src/commands/agents.md +1 -0
- package/.agent-src/commands/challenge-me.md +1 -0
- package/.agent-src/commands/chat-history.md +1 -0
- package/.agent-src/commands/context.md +1 -0
- package/.agent-src/commands/council.md +1 -0
- package/.agent-src/commands/feature.md +1 -0
- package/.agent-src/commands/fix.md +1 -0
- package/.agent-src/commands/grill-me.md +1 -0
- package/.agent-src/commands/judge.md +1 -0
- package/.agent-src/commands/memory.md +1 -0
- package/.agent-src/commands/module.md +1 -0
- package/.agent-src/commands/onboard.md +32 -4
- package/.agent-src/commands/optimize.md +1 -0
- package/.agent-src/commands/override.md +1 -0
- package/.agent-src/commands/roadmap.md +1 -0
- package/.agent-src/commands/tests.md +1 -0
- package/.agent-src/skills/canvas-design/SKILL.md +132 -0
- package/.agent-src/skills/canvas-design/evals/triggers.json +16 -0
- package/.agent-src/skills/doc-coauthoring/SKILL.md +129 -0
- package/.agent-src/skills/doc-coauthoring/evals/triggers.json +16 -0
- package/.agent-src/skills/nextjs-patterns/SKILL.md +203 -0
- package/.agent-src/skills/skill-writing/SKILL.md +101 -16
- package/.agent-src/skills/sql-writing/SKILL.md +1 -1
- package/.agent-src/skills/symfony-workflow/SKILL.md +173 -0
- package/.agent-src/templates/scripts/work_engine/hook_bootstrap.py +4 -0
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/__init__.py +3 -0
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/decision_gate.py +162 -0
- package/.agent-src/templates/scripts/work_engine/hooks/settings.py +24 -6
- package/.agent-src/templates/scripts/work_engine/scoring/decision_engine.py +351 -0
- package/.claude-plugin/marketplace.json +5 -1
- package/CHANGELOG.md +68 -0
- package/README.md +37 -8
- package/config/agent-settings.template.yml +66 -0
- package/docs/architecture.md +1 -1
- package/docs/contracts/STABILITY.md +16 -0
- package/docs/contracts/adr-chat-history-split.md +1 -0
- package/docs/contracts/adr-forecast-construction-shape.md +1 -0
- package/docs/contracts/adr-gtm-context-spine.md +1 -0
- package/docs/contracts/adr-level-6-productization.md +147 -0
- package/docs/contracts/adr-settings-sync-engine.md +1 -0
- package/docs/contracts/adr-wing4-context-spine.md +1 -0
- package/docs/contracts/agent-memory-contract.md +1 -0
- package/docs/contracts/agents-md-tech-stack.md +1 -0
- package/docs/contracts/audit-log-v1.md +1 -0
- package/docs/contracts/command-clusters.md +1 -0
- package/docs/contracts/command-surface-tiers.md +1 -0
- package/docs/contracts/context-paths.md +1 -0
- package/docs/contracts/cost-profile-defaults.md +105 -0
- package/docs/contracts/cross-wing-handoff.md +1 -0
- package/docs/contracts/decision-engine-gates.md +115 -0
- package/docs/contracts/decision-trace-v1.md +1 -0
- package/docs/contracts/file-ownership-matrix.md +1 -0
- package/docs/contracts/hook-architecture-v1.md +1 -0
- package/docs/contracts/implement-ticket-flow.md +1 -0
- package/docs/contracts/installed-tools-lockfile.md +1 -0
- package/docs/contracts/kernel-membership.md +1 -0
- package/docs/contracts/linear-ai-rules-inclusion.md +1 -0
- package/docs/contracts/linear-ai-three-layers.md +1 -0
- package/docs/contracts/linter-structural-model.md +1 -0
- package/docs/contracts/load-context-budget-model.md +1 -0
- package/docs/contracts/load-context-schema.md +1 -0
- package/docs/contracts/memory-visibility-v1.md +1 -0
- package/docs/contracts/one-off-script-lifecycle.md +1 -0
- package/docs/contracts/orchestration-dsl-v1.md +1 -0
- package/docs/contracts/package-self-orientation.md +1 -0
- package/docs/contracts/persona-schema.md +1 -0
- package/docs/contracts/release-trunk-sync.md +104 -0
- package/docs/contracts/roadmap-complexity-standard.md +1 -0
- package/docs/contracts/rule-classification.md +1 -0
- package/docs/contracts/rule-interactions.md +26 -0
- package/docs/contracts/rule-priority-hierarchy.md +1 -0
- package/docs/contracts/rule-router.md +1 -0
- package/docs/contracts/settings-sync-yaml-subset.md +1 -0
- package/docs/contracts/skill-domains.md +1 -0
- package/docs/contracts/tier-3-contrib-plugin.md +1 -0
- package/docs/contracts/ui-stack-extension.md +1 -0
- package/docs/contracts/ui-track-flow.md +1 -0
- package/docs/customization.md +1 -1
- package/docs/getting-started.md +3 -1
- package/docs/installation.md +8 -6
- package/package.json +1 -1
- package/scripts/ai_council/clients.py +17 -4
- package/scripts/ai_council/orchestrator.py +6 -2
- package/scripts/check_beta_review_markers.py +127 -0
- package/scripts/check_references.py +25 -0
- package/scripts/check_release_trunk_sync.py +152 -0
- package/scripts/council_cli.py +36 -5
- package/scripts/install.py +3 -3
- package/scripts/run_skill_evals.py +185 -0
- package/scripts/schemas/command.schema.json +5 -0
- package/scripts/schemas/skill.schema.json +4 -0
- package/scripts/skill_linter.py +82 -3
- package/scripts/smoke_quickstart.py +134 -0
- package/scripts/validate_decision_engine.py +124 -0
package/CHANGELOG.md
CHANGED
|
@@ -429,6 +429,74 @@ our recommendation order, not its support status.
|
|
|
429
429
|
> that forces a new era split (`# Era: 2.8.x`, etc.) — see
|
|
430
430
|
> [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
|
|
431
431
|
|
|
432
|
+
## [2.12.0](https://github.com/event4u-app/agent-config/compare/2.11.0...2.12.0) (2026-05-14)
|
|
433
|
+
|
|
434
|
+
### Features
|
|
435
|
+
|
|
436
|
+
* **linter:** evals.json schema validator + meta_skill exemption ([9568510](https://github.com/event4u-app/agent-config/commit/95685109540c7f2dc2643ec24ba9d996467e0645))
|
|
437
|
+
* **skill-writing:** § 7 quantitative eval loop + run_skill_evals.py ([9eda402](https://github.com/event4u-app/agent-config/commit/9eda402dc43b8e14682787fb1cbbc9872eb16fcc))
|
|
438
|
+
* **skills:** add doc-coauthoring from Anthropic ([161b904](https://github.com/event4u-app/agent-config/commit/161b9044743753f2e54bcae45c36a29daaa8058d))
|
|
439
|
+
* **skills:** add canvas-design from Anthropic ([95c247c](https://github.com/event4u-app/agent-config/commit/95c247c08d3c6710c53bfcd7ba7a00f270e0d8d4))
|
|
440
|
+
* **check-refs:** add file/line opt-out markers ([f381bcb](https://github.com/event4u-app/agent-config/commit/f381bcb5a08818e042af35836dd2c4d8965aa98e))
|
|
441
|
+
* make ai-council max_output_tokens configurable ([5976b46](https://github.com/event4u-app/agent-config/commit/5976b4623b94277f6ba49b0e82bb36ab7d5adb50))
|
|
442
|
+
|
|
443
|
+
### Bug Fixes
|
|
444
|
+
|
|
445
|
+
* **marketplace:** register canvas-design + doc-coauthoring ([9fbfe6a](https://github.com/event4u-app/agent-config/commit/9fbfe6af83589bf45b27b72c1b818be9772ae60c))
|
|
446
|
+
|
|
447
|
+
### Documentation
|
|
448
|
+
|
|
449
|
+
* **audit:** mark forward-refs in north-star bundle as opt-out ([a1d7c21](https://github.com/event4u-app/agent-config/commit/a1d7c21df3d05c27bacf81344893c4e43ae72a06))
|
|
450
|
+
* **roadmap:** expand step-99 with Total Dominance mandate ([c46cffd](https://github.com/event4u-app/agent-config/commit/c46cffd54214a61230be27ddaae3367053be39a5))
|
|
451
|
+
* **roadmap:** add step-99 north-star restructure (meta · out-of-band) ([8dd18f9](https://github.com/event4u-app/agent-config/commit/8dd18f963742d14dd9d006237ddd93881b198a60))
|
|
452
|
+
* **audit:** correct step-3 filename reference ([ee6bd7f](https://github.com/event4u-app/agent-config/commit/ee6bd7ffc6c6cd363b6207b6ff32aa72f2bc317e))
|
|
453
|
+
* **audit:** add 2026-05-14 north-star audit + council synthesis ([589c2fb](https://github.com/event4u-app/agent-config/commit/589c2fbd3e35b57529ab0f934665d71d611012d4))
|
|
454
|
+
* add roadmaps for council, persona, ghostwriter, user-types axis ([471fae3](https://github.com/event4u-app/agent-config/commit/471fae3a46182d930fea21adb4037a41ec99dcb3))
|
|
455
|
+
* add v2 feedback follow-up roadmap ([23d17cb](https://github.com/event4u-app/agent-config/commit/23d17cb24b33e794f7c1e31e76055cc5c8f1ab6c))
|
|
456
|
+
|
|
457
|
+
### Chores
|
|
458
|
+
|
|
459
|
+
* prefix roadmaps with step-N execution sequence ([de87232](https://github.com/event4u-app/agent-config/commit/de87232213404ad104e07c5ca831d64f4a607f8e))
|
|
460
|
+
|
|
461
|
+
Tests: 3718 (+0 since 2.11.0)
|
|
462
|
+
|
|
463
|
+
## [2.11.0](https://github.com/event4u-app/agent-config/compare/2.10.0...2.11.0) (2026-05-14)
|
|
464
|
+
|
|
465
|
+
### Features
|
|
466
|
+
|
|
467
|
+
* **stability:** add beta-review marker protocol and CI gate (P5.4) ([9b6cdfe](https://github.com/event4u-app/agent-config/commit/9b6cdfe9f9167e3e80551dfa2a88f80fff85646a))
|
|
468
|
+
* **lint:** add 'type: orchestrator' frontmatter tag for cluster routers (P5.3) ([e6385bb](https://github.com/event4u-app/agent-config/commit/e6385bbaf022dc3763f55c2dd54fe85046c59fd4))
|
|
469
|
+
* **skills:** add nextjs-patterns and symfony-workflow workflow skills (P4) ([038522b](https://github.com/event4u-app/agent-config/commit/038522b7ad2bd2ba1d8d8c4f9a61692694b7ebc8))
|
|
470
|
+
* **onboard:** add Quickstart pointer step and surface balanced default (P3.3) ([5879b4c](https://github.com/event4u-app/agent-config/commit/5879b4cc66fc9f49fa42c99e72794e4c60f43739))
|
|
471
|
+
* **install:** default cost_profile to balanced (P3.2) ([75caac2](https://github.com/event4u-app/agent-config/commit/75caac20fa2986222b5bd45a7cb63f07f9c4179f))
|
|
472
|
+
* **work-engine:** wire decision_gate hook into runner ([c41a89d](https://github.com/event4u-app/agent-config/commit/c41a89d38c7eb4892358b5c931abbe9a5889038c))
|
|
473
|
+
* **work-engine:** add decision_engine schema and gate evaluator ([fd1e8e2](https://github.com/event4u-app/agent-config/commit/fd1e8e2bb2e45e2288727ccd4a3bda4f809c6151))
|
|
474
|
+
* **release:** release-trunk-sync contract and CI gate (P1.2, P1.3) ([a3e0d12](https://github.com/event4u-app/agent-config/commit/a3e0d12c156c367c995e84c7c0bb5d6a21ff6325))
|
|
475
|
+
|
|
476
|
+
### Bug Fixes
|
|
477
|
+
|
|
478
|
+
* **readme:** rename 'For contributors' to 'Development' for linter ([7957274](https://github.com/event4u-app/agent-config/commit/7957274c65895d80fa4801f95df876979362ee86))
|
|
479
|
+
|
|
480
|
+
### Documentation
|
|
481
|
+
|
|
482
|
+
* **roadmap:** close + archive road-to-productization (Level-6) ([7ee50e8](https://github.com/event4u-app/agent-config/commit/7ee50e8b16f1ce7d4461f1466d9a6e46f4138101))
|
|
483
|
+
* **roadmap:** mark P3.1-P3.3 + P3.1a done in road-to-productization ([b0ff24f](https://github.com/event4u-app/agent-config/commit/b0ff24f23cb38d4ac556106c9ed060f104f83c8c))
|
|
484
|
+
* **readme:** add 3-step Quickstart and move contributor detail below the fold (P3.1) ([b98152e](https://github.com/event4u-app/agent-config/commit/b98152eb86607d6b34f63ea9ad4c152951de58a6))
|
|
485
|
+
* **roadmap:** mark P2.1-P2.3 done in road-to-productization ([189c780](https://github.com/event4u-app/agent-config/commit/189c780faef19cfbd9bceb3ad51ec42cb8cb05b7))
|
|
486
|
+
|
|
487
|
+
### CI
|
|
488
|
+
|
|
489
|
+
* **install:** add structural Quickstart smoke test (P3.1a) ([228445b](https://github.com/event4u-app/agent-config/commit/228445b97eefb20118bbea2872640c54225a1355))
|
|
490
|
+
* **work-engine:** validate decision_engine block in agent-settings ([1a1f428](https://github.com/event4u-app/agent-config/commit/1a1f428bec4832f8ffb222a8b450719ba6409605))
|
|
491
|
+
|
|
492
|
+
### Chores
|
|
493
|
+
|
|
494
|
+
* **generate-tools:** expose nextjs-patterns + symfony-workflow skills ([3422ac7](https://github.com/event4u-app/agent-config/commit/3422ac7e3f273497a0cbb176b2580a0cf1256522))
|
|
495
|
+
* **sync:** align orchestrator frontmatter + hash registry ([0e9ba2d](https://github.com/event4u-app/agent-config/commit/0e9ba2d50463ca99baf86651ea67ed82ca63d7f6))
|
|
496
|
+
* **gitignore:** ignore python coverage artifacts ([e1a3289](https://github.com/event4u-app/agent-config/commit/e1a328921f08fad03325adc256b63a544582efb7))
|
|
497
|
+
|
|
498
|
+
Tests: 3718 (+55 since 2.10.0)
|
|
499
|
+
|
|
432
500
|
## [2.10.0](https://github.com/event4u-app/agent-config/compare/2.9.0...2.10.0) (2026-05-14)
|
|
433
501
|
|
|
434
502
|
### Features
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ Give your AI agents an audit-disciplined orchestration contract — testing, Git
|
|
|
7
7
|
> Your agent picks up the project's stack, runs tests, prepares PRs, fixes CI — and follows your team's coding standards while doing it. Stack-aware skill sets ship for PHP (Laravel · Symfony · Zend/Laminas), JavaScript (Next.js · React · Node), and cross-stack concerns (API · testing · security · observability).
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
|
-
<strong>
|
|
10
|
+
<strong>210 Skills</strong> · <strong>61 Rules</strong> · <strong>106 Commands</strong> · <strong>72 Guidelines</strong> · <strong>8 AI Tools</strong>
|
|
11
11
|
</p>
|
|
12
12
|
|
|
13
13
|
---
|
|
@@ -46,6 +46,30 @@ or `.agent-src/`.
|
|
|
46
46
|
|
|
47
47
|
## Quickstart
|
|
48
48
|
|
|
49
|
+
**Three steps. Five minutes. Decision-traced first task.**
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# 1. Install (writes .agent-settings.yml, .augment/, .claude/, …)
|
|
53
|
+
npx @event4u/agent-config init
|
|
54
|
+
|
|
55
|
+
# 2. First-run setup (sets your name, IDE, cost profile)
|
|
56
|
+
# Open your AI agent (Claude Code, Cursor, …) and type:
|
|
57
|
+
/onboard
|
|
58
|
+
|
|
59
|
+
# 3. First real task — agent refines, plans, logs a decision_result
|
|
60
|
+
/work "your first real task"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
A `decision_result` entry lands in `agents/state/` confirming the
|
|
64
|
+
work-engine phases ran end-to-end. Stack-aware skills auto-load.
|
|
65
|
+
|
|
66
|
+
> Pick specific AIs, switch to global scope, deploy MCP on Cloudflare,
|
|
67
|
+
> or wire optional memory — see [**Detailed installation**](#detailed-installation)
|
|
68
|
+
> below. Contributors rebuilding the package — jump to
|
|
69
|
+
> [**Development**](#development).
|
|
70
|
+
|
|
71
|
+
### Detailed installation
|
|
72
|
+
|
|
49
73
|
Two minutes from `npx` to a better-behaved agent — no install, no
|
|
50
74
|
vendored package, no postinstall hook.
|
|
51
75
|
|
|
@@ -451,12 +475,14 @@ kernel set: [`docs/contracts/kernel-membership.md`](docs/contracts/kernel-member
|
|
|
451
475
|
| Stack | Coverage |
|
|
452
476
|
|---|---|
|
|
453
477
|
| Laravel · modern PHP | Skills, rules, project-analysis, quality-tool wiring (Pest · PHPStan · Rector · ECS) |
|
|
454
|
-
| Symfony
|
|
455
|
-
|
|
|
478
|
+
| Symfony | Workflow skill (`symfony-workflow`) + project-analysis + shared PHP coder/quality skills |
|
|
479
|
+
| Zend / Laminas | Project-analysis skills + shared PHP coder/quality skills |
|
|
480
|
+
| Next.js · App Router | Workflow skill (`nextjs-patterns`) + project-analysis + UI directive set (`react-shadcn`) |
|
|
481
|
+
| React · Node / Express | Project-analysis skills + UI directive set (`react-shadcn`) |
|
|
456
482
|
| Vue · plain HTML | UI directive set (`vue` / `plain`) — analysis skills as they ship |
|
|
457
483
|
| Cross-stack | API design · testing · security · database · Docker · Git · CI · review · threat modeling · observability |
|
|
458
484
|
|
|
459
|
-
**Deepest reference stack today: Laravel
|
|
485
|
+
**Deepest reference stack today: Laravel** — Pest, PHPStan, Rector, Eloquent, Livewire/Flux, Horizon, Pulse, Reverb, Pennant. **Workflow-grade second tier: Symfony** (`symfony-workflow` — DI, Doctrine, Messenger, voters, Twig) and **Next.js App Router** (`nextjs-patterns` — RSC boundaries, Server Actions, caching, route handlers). Other stacks ship in the order they are battle-tested, not second-class. Adopting on a thin stack? Open an issue so we can prioritize the right skills for extraction.
|
|
460
486
|
|
|
461
487
|
---
|
|
462
488
|
|
|
@@ -530,7 +556,7 @@ slash-commands) 📌 = informational marker only (no auto-discovery
|
|
|
530
556
|
or manual wiring required)
|
|
531
557
|
|
|
532
558
|
> **What this means in practice:** Claude Code gets the full project-scoped
|
|
533
|
-
> package (rules +
|
|
559
|
+
> package (rules + 210 skills + 106 native commands); Augment Code gets the
|
|
534
560
|
> same content but only from a single global install at `~/.augment/`.
|
|
535
561
|
> Cursor, Cline, Windsurf, Gemini CLI, GitHub Copilot, Roo Code, Codex CLI,
|
|
536
562
|
> and Continue.dev only get the **rules** natively; skills and commands are
|
|
@@ -652,11 +678,14 @@ re-enabled or the chat ends. Full scoring contract and hardening:
|
|
|
652
678
|
|
|
653
679
|
## Development
|
|
654
680
|
|
|
655
|
-
Edit in `.agent-src.uncompressed/`,
|
|
681
|
+
Working on the package itself? Edit in `.agent-src.uncompressed/`,
|
|
682
|
+
then regenerate compressed and projected trees:
|
|
656
683
|
|
|
657
684
|
```bash
|
|
658
|
-
task
|
|
659
|
-
task
|
|
685
|
+
task sync # regenerate .agent-src/ and .augment/
|
|
686
|
+
task generate-tools # regenerate .claude/, .cursor/, .clinerules/, .windsurfrules
|
|
687
|
+
task ci # full pipeline — green before PR
|
|
688
|
+
task test # unit + integration tests
|
|
660
689
|
```
|
|
661
690
|
|
|
662
691
|
→ Full commands and project structure: [**docs/development.md**](docs/development.md)
|
|
@@ -298,6 +298,15 @@ ai_council:
|
|
|
298
298
|
# opts in. Set to `min_rounds` to disable the deep tier.
|
|
299
299
|
deep_min_rounds: 3
|
|
300
300
|
|
|
301
|
+
# Per-member output-token budget passed to every API call. The CLI
|
|
302
|
+
# `--max-tokens` flag overrides this on a single invocation; the
|
|
303
|
+
# cost estimator uses the same value as its worst-case ceiling.
|
|
304
|
+
# `0` means "unlimited" — internally widened to the safe provider
|
|
305
|
+
# ceiling (16384) because Anthropic rejects max_tokens=0. Raise
|
|
306
|
+
# explicitly past 16384 only when a model genuinely supports more
|
|
307
|
+
# and you want longer answers.
|
|
308
|
+
max_output_tokens: 2048
|
|
309
|
+
|
|
301
310
|
# Hard cost ceiling per /council invocation. The orchestrator pauses
|
|
302
311
|
# before any member whose projected spend would breach a cap and asks
|
|
303
312
|
# the user to continue. `max_total_usd: 0` disables the USD ceiling
|
|
@@ -418,6 +427,63 @@ hooks:
|
|
|
418
427
|
tier1_concerns: []
|
|
419
428
|
hard_fail: false
|
|
420
429
|
|
|
430
|
+
# --- Decision engine ---
|
|
431
|
+
#
|
|
432
|
+
# Controllable gates layered over the observability surface. Absent
|
|
433
|
+
# block = current behaviour (observe-only, no gates fire). Enforcement
|
|
434
|
+
# is strictly opt-in; the engine never silently rejects work without
|
|
435
|
+
# a configured gate. See docs/contracts/decision-engine-gates.md for
|
|
436
|
+
# the full schema, gate-conflict matrix, and non-TTY timeout protocol.
|
|
437
|
+
#
|
|
438
|
+
# Gate-conflict resolution (only the first firing gate per phase
|
|
439
|
+
# surfaces a reason; downstream gates are skipped):
|
|
440
|
+
# 1. block_on_risk (Phase=Implement, highest impact)
|
|
441
|
+
# 2. require_memory_hits (Phase=Refine)
|
|
442
|
+
# 3. min_confidence (Phase=Plan, lowest impact)
|
|
443
|
+
#
|
|
444
|
+
# Unknown keys are rejected hard by scripts/validate_decision_engine.py
|
|
445
|
+
# (wired into `task ci`). Removing the entire block restores observe-only.
|
|
446
|
+
decision_engine:
|
|
447
|
+
# Opt-in for DecisionTraceHook (default false). Mirrored into
|
|
448
|
+
# hooks.decision_trace.enabled by work_engine.hooks.settings.
|
|
449
|
+
surface_traces: false
|
|
450
|
+
|
|
451
|
+
# Confidence-band floor for Phase=Plan.
|
|
452
|
+
# off = no floor (default)
|
|
453
|
+
# low = refuse to advance when band is below low
|
|
454
|
+
# medium = refuse when below medium
|
|
455
|
+
# high = refuse when below high
|
|
456
|
+
min_confidence: off
|
|
457
|
+
|
|
458
|
+
# Risk-class ceiling for Phase=Implement.
|
|
459
|
+
# off = no ceiling (default)
|
|
460
|
+
# low = refuse when risk_class >= low (most aggressive)
|
|
461
|
+
# medium = refuse when risk_class >= medium
|
|
462
|
+
# high = refuse only when risk_class == high
|
|
463
|
+
block_on_risk: off
|
|
464
|
+
|
|
465
|
+
# Phase=Refine demands at least one memory hit when true (default false).
|
|
466
|
+
# Gated on road-to-proof-not-features.md P2 (memory-consequence trace);
|
|
467
|
+
# leaving this off avoids opaque rejections until the trace can explain
|
|
468
|
+
# which memory entry was missing.
|
|
469
|
+
require_memory_hits: false
|
|
470
|
+
|
|
471
|
+
# What happens when a gate fires.
|
|
472
|
+
# stop = halt the engine with reason on the trace (default)
|
|
473
|
+
# ask = prompt the user; falls back to on_block_fallback in CI
|
|
474
|
+
# warn = log the reason but advance
|
|
475
|
+
on_block: stop
|
|
476
|
+
|
|
477
|
+
# Non-TTY timeout (seconds) when on_block=ask runs without a TTY
|
|
478
|
+
# (CI=true env or stdin not a TTY). After the timeout, the engine
|
|
479
|
+
# applies on_block_fallback and surfaces block_reason=ask_timeout.
|
|
480
|
+
ask_timeout_seconds: 30
|
|
481
|
+
|
|
482
|
+
# Resolution after ask_timeout fires.
|
|
483
|
+
# stop = halt the engine (default — fail-safe)
|
|
484
|
+
# warn = log and advance
|
|
485
|
+
on_block_fallback: stop
|
|
486
|
+
|
|
421
487
|
# --- Update check ---
|
|
422
488
|
#
|
|
423
489
|
# Daily background check against the npm registry for a newer
|
package/docs/architecture.md
CHANGED
|
@@ -141,7 +141,7 @@ note, package-internal path-swap, description budget, and the
|
|
|
141
141
|
|
|
142
142
|
| Layer | Count | Purpose |
|
|
143
143
|
|---|---|---|
|
|
144
|
-
| **Skills** |
|
|
144
|
+
| **Skills** | 210 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
|
|
145
145
|
| **Rules** | 61 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
|
|
146
146
|
| **Commands** | 106 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/compress`, … |
|
|
147
147
|
| **Guidelines** | 72 | Reference material cited by skills — PHP patterns, Eloquent, Playwright, agent-infra, … |
|
|
@@ -83,6 +83,22 @@ Promotion criteria:
|
|
|
83
83
|
with the contract unchanged, or the contract has been explicitly
|
|
84
84
|
frozen as part of a roadmap step.
|
|
85
85
|
|
|
86
|
+
## Beta-review markers
|
|
87
|
+
|
|
88
|
+
Every `stability: beta` contract MUST carry exactly one of the
|
|
89
|
+
following frontmatter markers (audit-acceptance for the periodic beta
|
|
90
|
+
review; see `road-to-productization.md` § P5.4):
|
|
91
|
+
|
|
92
|
+
| Marker | Shape | Meaning |
|
|
93
|
+
|---|---|---|
|
|
94
|
+
| `promote-to: stable` | literal | Contract has been ≥ 30 days in beta, zero breaking changes in the last 14 days, ≥ 1 consumer reference. Schedule promotion in the next release. |
|
|
95
|
+
| `keep-beta-until: YYYY-MM-DD` | ISO date | API still moving or consumer count = 0. Date is the next review deadline (max 90 days from the last review). |
|
|
96
|
+
| `superseded-by: <contract-id>` | string | Replaced by a stable contract. Slated for deprecation, not deletion. |
|
|
97
|
+
|
|
98
|
+
The audit is repeated whenever the `keep-beta-until` date passes for
|
|
99
|
+
≥ 25 % of beta contracts, or at the start of any roadmap phase that
|
|
100
|
+
touches the contract surface.
|
|
101
|
+
|
|
86
102
|
## Current contracts
|
|
87
103
|
|
|
88
104
|
See the file headers themselves for current levels. The frontmatter is
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: stable
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# ADR — Level-6 Productization Closure
|
|
6
|
+
|
|
7
|
+
> **Status:** Decided · 2026-05-14
|
|
8
|
+
> **Context:** Closure record for `road-to-productization.md` and its
|
|
9
|
+
> two sibling roadmaps (`road-to-proof-not-features.md`,
|
|
10
|
+
> `road-to-better-skills-and-profiles.md` Block A). PR #43 lifted the
|
|
11
|
+
> package from Level-4 (execution engine) to Level-5 (observable
|
|
12
|
+
> decision system); this roadmap was the Level-5 → Level-6 jump:
|
|
13
|
+
> **steerable + provable + onboardable**.
|
|
14
|
+
> **Cross-links:**
|
|
15
|
+
> [`road-to-productization.md`](../../agents/roadmaps/road-to-productization.md) ·
|
|
16
|
+
> [`road-to-proof-not-features.md`](../../agents/roadmaps/archive/road-to-proof-not-features.md) ·
|
|
17
|
+
> [`road-to-better-skills-and-profiles.md`](../../agents/roadmaps/archive/road-to-better-skills-and-profiles.md).
|
|
18
|
+
|
|
19
|
+
## What shipped
|
|
20
|
+
|
|
21
|
+
### Decision-Engine steerability (Phase 2)
|
|
22
|
+
|
|
23
|
+
- [`decision-engine-gates.md`](decision-engine-gates.md) — additive
|
|
24
|
+
`decision_engine:` block in `.agent-settings.yml` with
|
|
25
|
+
`min_confidence`, `block_on_risk`, `require_memory_hits`, `on_block`,
|
|
26
|
+
`ask_timeout_seconds`, `on_block_fallback`. Absent block = unchanged
|
|
27
|
+
observe-only behaviour.
|
|
28
|
+
- Gate-conflict resolution matrix (P2.1a) + non-TTY timeout fallback
|
|
29
|
+
(P2.1b) shipped before the gates themselves; the engine refuses to
|
|
30
|
+
evaluate downstream gates after the first rejection and falls back
|
|
31
|
+
to `on_block_fallback` in non-interactive contexts.
|
|
32
|
+
- Confidence-band gate (P2.2) and risk-class gate (P2.3) wired into
|
|
33
|
+
the scoring path. Memory-required policy (P2.4) unblocks on P6.2
|
|
34
|
+
shipping (`affected` keys in the decision trace).
|
|
35
|
+
|
|
36
|
+
### UX simplification (Phase 3)
|
|
37
|
+
|
|
38
|
+
- README "Quickstart" block — install → `/onboard` → `/work "first
|
|
39
|
+
real task"`, contributor detail moved below the `## For contributors`
|
|
40
|
+
fold.
|
|
41
|
+
- Default `cost_profile` flipped from `minimal` to `balanced`;
|
|
42
|
+
rationale in [`cost-profile-defaults.md`](cost-profile-defaults.md).
|
|
43
|
+
- `/onboard` step 11 prints the Quickstart command list inline.
|
|
44
|
+
- CI gate: `task smoke-quickstart` runs the installer into a tmpdir
|
|
45
|
+
and validates the documented default surface deterministically.
|
|
46
|
+
|
|
47
|
+
### Multi-stack skill depth (Phase 4)
|
|
48
|
+
|
|
49
|
+
- `symfony-workflow` skill (~8.6 KB) — DI, Doctrine, Messenger,
|
|
50
|
+
voters, Twig, console.
|
|
51
|
+
- `nextjs-patterns` skill (~9.9 KB) — App Router, RSC boundaries,
|
|
52
|
+
Server Actions, caching, route handlers, 14.x↔15.x deltas.
|
|
53
|
+
- README stack table now separates Symfony / Next.js / Zend-Laminas
|
|
54
|
+
rows; "Deepest reference stack" paragraph names the workflow-grade
|
|
55
|
+
second tier explicitly.
|
|
56
|
+
|
|
57
|
+
### Architecture cleanup (Phase 5)
|
|
58
|
+
|
|
59
|
+
- Auto-rules (`non-destructive-by-default`, `scope-control-policy`)
|
|
60
|
+
audited: already refactored to trigger + Iron Law + pointer shape;
|
|
61
|
+
bound by the kernel-budget linter at 4 000-char override ceiling
|
|
62
|
+
(P5.1).
|
|
63
|
+
- Rule-Interaction matrix marked rule-only by design;
|
|
64
|
+
[`rule-interactions.md`](rule-interactions.md) § "Out of scope —
|
|
65
|
+
orchestration surfaces" points at `decision-engine-gates`,
|
|
66
|
+
`decision-trace-v1`, `agent-memory-contract`, `memory-visibility-v1`,
|
|
67
|
+
and the `ai-council` skill for Council × Memory × Work-Engine
|
|
68
|
+
interactions (P5.2).
|
|
69
|
+
- `type: orchestrator` frontmatter tag exempts cluster routers from
|
|
70
|
+
the `command_missing_skill_references` linter check; 15 commands
|
|
71
|
+
carry the tag (P5.3).
|
|
72
|
+
- Beta-review marker protocol shipped in [`STABILITY.md`](STABILITY.md)
|
|
73
|
+
§ Beta-review markers; `scripts/check_beta_review_markers.py` wired
|
|
74
|
+
into `task ci`; 39 beta contracts back-filled (P5.4).
|
|
75
|
+
- Test-redundancy audit produced
|
|
76
|
+
[`step-5-test-cleanup.md`](../../agents/roadmaps/step-5-test-cleanup.md)
|
|
77
|
+
— audit-only, no deletions (P5.5).
|
|
78
|
+
|
|
79
|
+
### Release-trunk discipline (Phase 1)
|
|
80
|
+
|
|
81
|
+
- [`release-trunk-sync.md`](release-trunk-sync.md) protocol; CI gate
|
|
82
|
+
fails the release-prep branch when `main` is more than one tagged
|
|
83
|
+
release behind (P1.3).
|
|
84
|
+
|
|
85
|
+
### Proof + cognition layers (Phases 6 + 7)
|
|
86
|
+
|
|
87
|
+
- Memory-consequence in the trace: `affected` keys in
|
|
88
|
+
[`decision-trace-v1.md`](decision-trace-v1.md) (sibling P2.1a–c).
|
|
89
|
+
- README three-audience split (sibling P2.2a–c).
|
|
90
|
+
- Hook doctor (sibling P2.3).
|
|
91
|
+
- Persona spine: Core-tier 5-section + Specialist-tier 7-section
|
|
92
|
+
spines locked in [`persona-schema.md`](persona-schema.md) (sibling
|
|
93
|
+
Block A).
|
|
94
|
+
|
|
95
|
+
## What got cancelled
|
|
96
|
+
|
|
97
|
+
- **P6.1 — Three real showcase sessions** (sibling P1.1–P1.4).
|
|
98
|
+
Cancelled upstream — capturing real host-agent sessions requires a
|
|
99
|
+
hosted-LLM runner that is out of scope for this roadmap. P1.0
|
|
100
|
+
pre-flight shipped; the capture surface is ready when a runner
|
|
101
|
+
exists. Reopen as `road-to-showcase-capture.md` once a runner is
|
|
102
|
+
on the table.
|
|
103
|
+
- **P8.1 — End-to-end Level-6 smoke** — same gating as P6.1.
|
|
104
|
+
Structural coverage (`task smoke-quickstart` + decision-engine
|
|
105
|
+
schema validator + gate-evaluator unit tests) covers the
|
|
106
|
+
configuration surface deterministically; the live smoke remains
|
|
107
|
+
the manual pre-tag gate.
|
|
108
|
+
|
|
109
|
+
## What stayed beta
|
|
110
|
+
|
|
111
|
+
39 contracts carry `keep-beta-until: 2026-08-12` (next audit
|
|
112
|
+
deadline). None met the 30-day promotion floor at audit time.
|
|
113
|
+
First-commit age range: 0–12 days. Audit cap is 90 days from the
|
|
114
|
+
audit date; CI rejects undated betas, multiple markers, and
|
|
115
|
+
keep-beta-until dates beyond the window.
|
|
116
|
+
|
|
117
|
+
## What got deferred to siblings
|
|
118
|
+
|
|
119
|
+
- **Showcase capture** → future `road-to-showcase-capture.md` when a
|
|
120
|
+
hosted-LLM runner is on the table.
|
|
121
|
+
- **Test-suite deletion** →
|
|
122
|
+
[`step-5-test-cleanup.md`](../../agents/roadmaps/step-5-test-cleanup.md)
|
|
123
|
+
(audit-only sibling spawned by P5.5; non-destructive by default).
|
|
124
|
+
- **Persona Block B** (Architect / Risk-Officer extension) —
|
|
125
|
+
anti-recommended per the sibling closure decision; not deferred,
|
|
126
|
+
closed.
|
|
127
|
+
- **Distribution / adoption** →
|
|
128
|
+
`road-to-distribution-and-adoption.md`, gated on this roadmap
|
|
129
|
+
closing (which this ADR records).
|
|
130
|
+
- **MCP server work** — own strand, out of scope.
|
|
131
|
+
|
|
132
|
+
## Consequences
|
|
133
|
+
|
|
134
|
+
- **Steerable:** the Decision Engine now gates on configurable
|
|
135
|
+
thresholds; the configuration surface is documented and CI-tested.
|
|
136
|
+
- **Provable:** memory hits/misses surface as `affected` keys in the
|
|
137
|
+
decision trace; the trace shape is contract-stable.
|
|
138
|
+
- **Onboardable:** a fresh user can land at a working `/work`
|
|
139
|
+
invocation in three Quickstart steps without scrolling past the
|
|
140
|
+
fold.
|
|
141
|
+
- **Multi-stack credible:** Laravel stays the deepest reference;
|
|
142
|
+
Symfony and Next.js shipped at workflow-grade depth; other stacks
|
|
143
|
+
remain project-analysis-only with the honest delta language in the
|
|
144
|
+
README.
|
|
145
|
+
- **Architecturally tidy:** orchestrator commands no longer warn,
|
|
146
|
+
beta contracts cannot rot undated, and the contract surface itself
|
|
147
|
+
carries a periodic review obligation.
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Cost-Profile Defaults — Contract
|
|
2
|
+
|
|
3
|
+
> **Status:** beta · **Owner:** package maintainer · **Last reviewed:** 2026-05-14
|
|
4
|
+
>
|
|
5
|
+
> Normative contract for the **default `cost_profile`** new installs receive.
|
|
6
|
+
> Profile semantics themselves are documented in
|
|
7
|
+
> [`docs/customization.md` § cost_profile](../customization.md) and
|
|
8
|
+
> [`docs/contracts/rule-router.md`](rule-router.md); this file owns only the
|
|
9
|
+
> **default-selection decision** and the rationale behind it.
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
DEFAULT_PROFILE = "balanced"
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
`scripts/install.py` and `npx @event4u/agent-config init` write
|
|
18
|
+
`cost_profile: balanced` into `.agent-settings.yml` for fresh installs
|
|
19
|
+
unless the user passes `--profile=minimal` or `--profile=full`.
|
|
20
|
+
|
|
21
|
+
## Profile table
|
|
22
|
+
|
|
23
|
+
| Profile | Contents | Token footprint | Use when |
|
|
24
|
+
|---|---|---|---|
|
|
25
|
+
| `minimal` | Kernel only (9 always-loaded Iron-Law rules, ≤ 26 k chars) | Lowest | Token-constrained agents (small context windows, free-tier models) or projects that opt out of routing |
|
|
26
|
+
| **`balanced`** *(default)* | Kernel + tier-1 auto-rules (workflow + safety floor) | Medium | Every productized install — the documented "current behaviour superset" |
|
|
27
|
+
| `full` | Kernel + tier-1 + tier-2 (every rule, every guideline-cited skill) | Highest | Teams running large-context models (Opus 4, GPT-5) that want maximum guardrail coverage |
|
|
28
|
+
| `custom` | Ignore profile; every matrix value set explicitly | Variable | Power users tuning per-rule load decisions |
|
|
29
|
+
|
|
30
|
+
## Why `balanced`, not `minimal`
|
|
31
|
+
|
|
32
|
+
The kernel-only `minimal` profile predates the tier-1 router. It was the
|
|
33
|
+
correct default while tier-1 was experimental, but four signals now point
|
|
34
|
+
at `balanced`:
|
|
35
|
+
|
|
36
|
+
1. **Documented intent already says so.** Both
|
|
37
|
+
`config/agent-settings.template.yml` (the source the installer projects
|
|
38
|
+
from) and `docs/customization.md` describe `balanced` as
|
|
39
|
+
"default — current behaviour superset". The code default of `minimal`
|
|
40
|
+
was a drift artifact, not a deliberate stance.
|
|
41
|
+
2. **Productization (Level-6) demands sensible-default-out-of-the-box.**
|
|
42
|
+
A fresh `npx init` followed immediately by `/work` should engage the
|
|
43
|
+
full workflow guardrail set — `developer-like-execution`,
|
|
44
|
+
`verify-before-complete`, `minimal-safe-diff`, `scope-control`.
|
|
45
|
+
These live in tier-1, not the kernel. With `minimal`, the
|
|
46
|
+
work-engine runs unanchored against most quality guardrails.
|
|
47
|
+
3. **Decision-engine gates assume tier-1 is present.** The P2.x gates
|
|
48
|
+
(`min_confidence`, `block_on_risk`, `require_memory_hits`) are
|
|
49
|
+
harmless under `minimal` but only reach their documented behaviour
|
|
50
|
+
under `balanced` and above — because the confidence model and
|
|
51
|
+
risk-classification rules they read live in tier-1.
|
|
52
|
+
4. **Opt-out is cheap, opt-in is invisible.** A team that wants the
|
|
53
|
+
`minimal` floor flips one YAML value. A team that doesn't know
|
|
54
|
+
tier-1 exists never finds it. The default should err toward
|
|
55
|
+
guardrail coverage.
|
|
56
|
+
|
|
57
|
+
## Opt-out path
|
|
58
|
+
|
|
59
|
+
Token-budget pressure → flip in `.agent-settings.yml`:
|
|
60
|
+
|
|
61
|
+
```yaml
|
|
62
|
+
cost_profile: minimal
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
…or pass `--profile=minimal` to `npx @event4u/agent-config init`.
|
|
66
|
+
No migration is required: removing tier-1 rules from a session has no
|
|
67
|
+
state-machine impact because the kernel carries the Iron-Law floor.
|
|
68
|
+
|
|
69
|
+
## Drift detection
|
|
70
|
+
|
|
71
|
+
CI must keep three surfaces in sync:
|
|
72
|
+
|
|
73
|
+
- `scripts/install.py` — `DEFAULT_PROFILE` constant.
|
|
74
|
+
- `config/agent-settings.template.yml` — comment block on the
|
|
75
|
+
`cost_profile:` key.
|
|
76
|
+
- `docs/customization.md` — cost-profile table default column.
|
|
77
|
+
|
|
78
|
+
Reviewer guidance: a PR that changes any one of these must touch the
|
|
79
|
+
other two **plus** this file's `Last reviewed:` field. The
|
|
80
|
+
`docs-sync` rule enforces the cross-reference check; a missing update
|
|
81
|
+
trips it.
|
|
82
|
+
|
|
83
|
+
## Re-review schedule
|
|
84
|
+
|
|
85
|
+
`re-review: 2026-11-14` (six months out). Triggers for earlier
|
|
86
|
+
re-review:
|
|
87
|
+
|
|
88
|
+
- Tier-1 rule count drops below 5 (the router would carry too little
|
|
89
|
+
to justify the load cost).
|
|
90
|
+
- Median `npx init` token cost grows past 40 k for a fresh agent
|
|
91
|
+
session (then re-evaluate `minimal` as the default).
|
|
92
|
+
- A consumer-project tally shows ≥ 80 % of installs override the
|
|
93
|
+
default within seven days (the default is wrong for the population).
|
|
94
|
+
|
|
95
|
+
## Non-goals
|
|
96
|
+
|
|
97
|
+
- This contract does **not** dictate what tier-1 contains. That belongs
|
|
98
|
+
to [`rule-router.md`](rule-router.md) and the `kernel-membership.md`
|
|
99
|
+
contract.
|
|
100
|
+
- It does **not** add a fourth profile. `custom` covers the
|
|
101
|
+
per-tenant-tuning case; no new tier needed.
|
|
102
|
+
- It does **not** auto-migrate existing installs. Projects already
|
|
103
|
+
pinned to `minimal` keep `minimal` until a developer edits the file
|
|
104
|
+
or runs `npx @event4u/agent-config migrate` (which preserves
|
|
105
|
+
user-set values per [`migration/v1-to-v2.md`](../migration/v1-to-v2.md)).
|