@event4u/agent-config 9.3.0 → 9.5.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.
Files changed (74) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +92 -0
  3. package/CONTRIBUTING.md +14 -0
  4. package/README.md +12 -4
  5. package/dist/agent-src/commands/contribution-precheck.md +100 -0
  6. package/dist/agent-src/commands/team.md +4 -0
  7. package/dist/agent-src/contexts/model-recommendations.md +6 -0
  8. package/dist/agent-src/rules/token-efficiency.md +7 -0
  9. package/dist/agent-src/skills/adversarial-review/SKILL.md +5 -0
  10. package/dist/agent-src/skills/ai-council/SKILL.md +3 -0
  11. package/dist/agent-src/skills/build-buy-partner/SKILL.md +1 -0
  12. package/dist/agent-src/skills/decision-record/SKILL.md +35 -1
  13. package/dist/agent-src/skills/decision-record/evals/triggers.json +82 -12
  14. package/dist/agent-src/skills/decision-record/references/weighted-matrix.md +119 -0
  15. package/dist/agent-src/skills/evaluate-llm-feature/SKILL.md +142 -0
  16. package/dist/agent-src/skills/judge-synthesis/SKILL.md +1 -0
  17. package/dist/agent-src/skills/learning-tutor/SKILL.md +215 -0
  18. package/dist/agent-src/skills/rice-prioritization/SKILL.md +1 -0
  19. package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +3 -1
  20. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +2 -1
  21. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  22. package/dist/discovery/deprecation-report.md +1 -1
  23. package/dist/discovery/discovery-manifest.json +94 -24
  24. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  25. package/dist/discovery/discovery-manifest.summary.md +4 -4
  26. package/dist/discovery/orphan-report.md +1 -1
  27. package/dist/discovery/packs.json +13 -10
  28. package/dist/discovery/trust-report.md +3 -3
  29. package/dist/discovery/workspaces.json +9 -6
  30. package/dist/mcp/registry-manifest.json +3 -3
  31. package/docs/CLAIMS.md +23 -2
  32. package/docs/announcements/2026-07-honest-cost-sweep-launch.md +84 -0
  33. package/docs/anti-reskin-gate.md +60 -0
  34. package/docs/architecture.md +2 -2
  35. package/docs/benchmark.md +40 -0
  36. package/docs/catalog.md +303 -278
  37. package/docs/command-flows.md +2 -1
  38. package/docs/comparison.yaml +10 -0
  39. package/docs/contracts/adoption-signal-floor.md +17 -0
  40. package/docs/contracts/ai-council-config.md +25 -0
  41. package/docs/contracts/mcp-tool-inventory.md +25 -22
  42. package/docs/contracts/tier-3-contrib-plugin.md +12 -4
  43. package/docs/featured-skills.md +2 -2
  44. package/docs/getting-started-by-role.md +1 -1
  45. package/docs/getting-started.md +1 -1
  46. package/docs/governance-advantage.md +1 -1
  47. package/docs/proof.md +11 -6
  48. package/docs/self-review-gate.md +14 -0
  49. package/docs/setup/per-ide/antigravity.md +8 -3
  50. package/docs/us-vs-the-category.md +38 -0
  51. package/docs/wedge/production-validator/README.md +24 -0
  52. package/docs/wedge/production-validator/first-run-check.sh +42 -0
  53. package/package.json +1 -1
  54. package/src/scripts/_lib/catalog_score.ts +64 -0
  55. package/src/scripts/_lib/shingle_similarity.ts +146 -0
  56. package/src/scripts/ai_council/clients.ts +50 -1
  57. package/src/scripts/ai_council/config.ts +28 -3
  58. package/src/scripts/ai_council/low_impact.ts +16 -0
  59. package/src/scripts/ai_council/necessity.ts +11 -0
  60. package/src/scripts/ai_council/orchestrator.ts +78 -26
  61. package/src/scripts/ai_council/pricing.ts +59 -0
  62. package/src/scripts/ai_council/stance_tally.ts +42 -5
  63. package/src/scripts/bench_defect_finding.ts +348 -0
  64. package/src/scripts/build_catalog_index.ts +188 -0
  65. package/src/scripts/council_cli.ts +56 -1
  66. package/src/scripts/generate_index.ts +6 -3
  67. package/src/scripts/lint_originality.ts +464 -0
  68. package/src/scripts/mcp_server/catalog_tools.ts +114 -0
  69. package/src/scripts/mcp_server/consumer_tool_catalog.json +46 -0
  70. package/src/scripts/schemas/flow.schema.json +17 -0
  71. package/src/scripts/schemas/skill.schema.json +166 -32
  72. package/src/scripts/self_review_gate.test.ts +48 -0
  73. package/src/scripts/self_review_gate.ts +73 -5
  74. package/src/scripts/validate_flow_teams.ts +127 -0
@@ -0,0 +1,60 @@
1
+ # Anti-reskin gate for your skills repo
2
+
3
+ If you maintain a catalog of AI-agent skills and accept community PRs, your
4
+ failure mode is the **find-replace re-skin**: an existing skill resubmitted
5
+ with "Laravel" → "Symfony", "Vietnam" → "Korea", new name, same substance.
6
+ Keyword-cosine and token-Jaccard checks miss it; manual review does not scale
7
+ past a handful of PRs per month.
8
+
9
+ This package ships the gate that catches it: `lint_originality` — an
10
+ entity-neutralized shingle-overlap linter. Framework / vendor / region proper
11
+ nouns are neutralized before comparing 8-word shingles, so the swap does not
12
+ move the score: a re-skin scores ~100 % overlap while the worst legitimate
13
+ pair in a 496-artifact corpus scores 40 %. Class templates and
14
+ document-frequency boilerplate are subtracted, so shared scaffolding never
15
+ scores. The `--changed` mode is batch-masking-hardened: a batch of
16
+ near-identical submissions cannot classify its own shared shingles as
17
+ boilerplate (regression-locked in `tests/scripts/lint_originality.test.ts`).
18
+
19
+ It runs as a blocking PR gate on this repo (`originality-gate` job in
20
+ [`.github/workflows/skill-lint.yml`](../.github/workflows/skill-lint.yml)).
21
+
22
+ ## Run it on your own catalog — today
23
+
24
+ The tool is not yet a standalone package; it runs from a clone. The corpus
25
+ roots are fixed (`src/skills/*/SKILL.md`), so you stage your skills into one:
26
+
27
+ ```bash
28
+ git clone --depth 1 https://github.com/event4u-app/agent-config
29
+ cd agent-config && npm ci
30
+
31
+ # Stage your catalog into the skills corpus root (one dir per skill):
32
+ for f in /path/to/your-repo/skills/*/SKILL.md; do
33
+ d="src/skills/ext-$(basename "$(dirname "$f")")"
34
+ mkdir -p "$d" && cp "$f" "$d/SKILL.md"
35
+ done
36
+
37
+ # Compare your skills against each other (and this corpus) in one pass:
38
+ ./scripts-run src/scripts/lint_originality --changed src/skills/ext-*/SKILL.md
39
+ ```
40
+
41
+ Exit `1` with an offending pair + overlap % means a re-skin; exit `0` means no
42
+ same-class pair exceeds the 40 % warn floor. Thresholds are env-overridable
43
+ (`ORIGINALITY_FAIL`, `ORIGINALITY_WARN`).
44
+
45
+ ## Want this as a zero-config `npx` tool?
46
+
47
+ We will extract `lint_originality` as a standalone zero-config package
48
+ (`--changed` mode for PR CI, no repo coupling, regression suite included) **if
49
+ there is real demand** — the bet is settled by a measured floor, not opinion:
50
+
51
+ - **Signal:** open an issue on this repo titled `anti-reskin gate: standalone
52
+ request` (or reference `lint_originality` in an issue/PR about your own
53
+ catalog).
54
+ - **Floor:** ≥ 3 distinct external maintainers signal within 90 days of this
55
+ page landing on `main` → we ship the extraction.
56
+ - **Kill criterion:** floor missed → extraction is cancelled and recorded;
57
+ this page stays as the run-from-clone recipe.
58
+
59
+ Contract: [`docs/contracts/adoption-signal-floor.md` § Extraction demand
60
+ gate](contracts/adoption-signal-floor.md#extraction-demand-gate--lint_originality-standalone-probe).
@@ -146,9 +146,9 @@ note, package-internal path-swap, description budget, and the
146
146
 
147
147
  | Layer | Count | Purpose |
148
148
  |---|---|---|
149
- | **Skills** | 276 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
149
+ | **Skills** | 278 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
150
150
  | **Rules** | 105 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
151
- | **Commands** | 189 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/condense`, … |
151
+ | **Commands** | 190 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/condense`, … |
152
152
  | **Guidelines** | 101 | Reference material cited by skills — PHP patterns, Eloquent, Playwright, agent-infra, … |
153
153
  | **Templates** | 7 | Scaffolds for features, roadmaps, contexts, skills, overrides |
154
154
  | **Contexts** | 5 | Shared knowledge about the system itself |
package/docs/benchmark.md CHANGED
@@ -582,3 +582,43 @@ controversial-but-correct control.
582
582
  judge-survivable-subtlety corpus with a published distribution, then (2) a
583
583
  maintainer-gated paid cross-vendor run. Honest-null on that run keeps the
584
584
  surface default-off permanently, like recursive-verification.
585
+
586
+
587
+ ## Defect-finding: team vs self-review vs council (2026-07-20) — HONEST NULL (ceiling-limited) {#honest-null-defect}
588
+
589
+ Pre-registered 12-fixture corpus (`internal/bench/corpora/defect-finding.yaml`:
590
+ 10 seeded-defect diffs across logic / off-by-one / race / missing-empty-state /
591
+ security-smell, + 2 controls), three arms, deterministic file-level recall
592
+ against ground truth (blind rubric judge deferred — the primary metric is
593
+ deterministic). Codex reviewer pinned `gpt-5.5`. Total billable $0.083 (arm b
594
+ codex = ChatGPT subscription, $0).
595
+
596
+ | arm | recall | correctness | design | false-positives |
597
+ |---|--:|--:|--:|--:|
598
+ | self-review (single model) | 1.00 | 1.00 | 1.00 | 1 |
599
+ | team (cross-model, codex) | 1.00 | 1.00 | 1.00 | 0 |
600
+ | council (neutral breadth) | 1.00 | 1.00 | 1.00 | 0 |
601
+
602
+ **Verdict: HONEST NULL.** H1 (cross-model team > single-model self-review on
603
+ correctness recall, Δ ≥ +0.20) is **not met** — Δ = 0: all three arms recalled
604
+ every planted defect. H2 (council ≈ team on design, within 0.10) is met (Δ = 0).
605
+ H3 (≤ 1 false positive/arm) is met.
606
+
607
+ **Corpus-validity caveat (the honest bound):** recall 1.00 across every arm is a
608
+ **ceiling effect** — these seeded defects are catchable by any strong model, so
609
+ the corpus cannot discriminate the arms on recall. This is the same limitation
610
+ the adversarial-verification-council section names: a corpus of obvious,
611
+ model-differentiating defects measures parity, not the judge-survivable
612
+ subtleties where a cross-model lens might actually differ. The one non-null
613
+ signal is precision, not recall: single-model self-review produced 1 false
614
+ positive on the controversial-but-correct control (`df-ctl-01`, a
615
+ behaviour-preserving `clamp` refactor) where team and council produced 0 — a
616
+ hint of a multi-arm precision edge, within the pre-registered H3 bound, too
617
+ small to claim.
618
+
619
+ **Disposition (Phase 5 Step 5): evidence-closed as NULL.** No cross-model
620
+ defect-finding *quality/lift* claim binds; team mode stays documented as
621
+ **workflow value only**. Re-open conditions: (a) a curated
622
+ judge-survivable-subtlety corpus that breaks the recall ceiling, or (b) a new
623
+ model generation. The worker-via-bundle delegate (roadmap Phase 3 Step 4) stays
624
+ deferred — it re-opened only on a measured review lift, which did not occur.