@event4u/agent-config 9.32.0 → 9.34.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 (109) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +85 -72
  3. package/dist/agent-src/commands/agent-handoff.md +15 -3
  4. package/dist/agent-src/commands/review/routing.md +3 -4
  5. package/dist/agent-src/contexts/communication/rules-auto/reply-close-mechanics.md +65 -0
  6. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +3 -0
  7. package/dist/agent-src/rules/delegation-policy.md +6 -0
  8. package/dist/agent-src/scripts/archive_completed_roadmaps.ts +35 -1
  9. package/dist/agent-src/scripts/roadmap_gates.ts +107 -3
  10. package/dist/agent-src/skills/corpus-grounding/SKILL.md +21 -12
  11. package/dist/agent-src/skills/design-tokens/SKILL.md +15 -0
  12. package/dist/agent-src/skills/docker/SKILL.md +11 -0
  13. package/dist/agent-src/skills/laravel/SKILL.md +11 -0
  14. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +24 -0
  15. package/dist/agent-src/skills/review-routing/SKILL.md +23 -6
  16. package/dist/agent-src/skills/rule-writing/SKILL.md +23 -0
  17. package/dist/agent-src/skills/skill-writing/SKILL.md +80 -2
  18. package/dist/agent-src/skills/systematic-debugging/SKILL.md +5 -3
  19. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +24 -0
  20. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  21. package/dist/agent-src/templates/scripts/ownership-map.example.yml +1 -1
  22. package/dist/cli/registry.js +4 -4
  23. package/dist/cli/registry.js.map +1 -1
  24. package/dist/cli-delegate/chunk-HTIU3W56.js +66 -0
  25. package/dist/cli-delegate/{chunk-2WELHO3P.js → chunk-I5EAFRII.js} +35 -0
  26. package/dist/cli-delegate/{chunk-ITIQSGOQ.js → chunk-MA4GFWDY.js} +7 -4
  27. package/dist/cli-delegate/{chunk-PFBV6XRT.js → chunk-Q26HT4QT.js} +1 -63
  28. package/dist/cli-delegate/{chunk-542DZR4P.js → chunk-REMEZSVP.js} +1660 -146
  29. package/dist/cli-delegate/{chunk-3EWYC3YK.js → chunk-UEZ7D35A.js} +4 -3
  30. package/dist/cli-delegate/{chunk-LVRYBKTI.js → chunk-YPAWXXXR.js} +158 -0
  31. package/dist/cli-delegate/cmd_conformance.js +256 -226
  32. package/dist/cli-delegate/cmd_doctor.js +3 -2
  33. package/dist/cli-delegate/cmd_export.js +1 -1
  34. package/dist/cli-delegate/cmd_handoff.js +21 -28
  35. package/dist/cli-delegate/cmd_memory_get.js +1 -1
  36. package/dist/cli-delegate/cmd_prune.js +1 -1
  37. package/dist/cli-delegate/cmd_route_audit.js +1 -1
  38. package/dist/cli-delegate/cmd_session_recycle.js +20 -5
  39. package/dist/cli-delegate/cmd_settings_get.js +4 -2
  40. package/dist/cli-delegate/cmd_settings_migrate.js +1 -1
  41. package/dist/cli-delegate/cmd_settings_set.js +5 -3
  42. package/dist/cli-delegate/cmd_sync.js +1 -1
  43. package/dist/cli-delegate/cmd_uninstall.js +1 -1
  44. package/dist/cli-delegate/cmd_validate.js +1 -1
  45. package/dist/discovery/deprecation-report.md +1 -1
  46. package/dist/discovery/discovery-manifest.json +17 -17
  47. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  48. package/dist/discovery/discovery-manifest.summary.md +2 -2
  49. package/dist/discovery/dormancy-report.md +17 -0
  50. package/dist/discovery/orphan-report.md +1 -1
  51. package/dist/discovery/packs.json +3 -3
  52. package/dist/discovery/trust-report.md +1 -1
  53. package/dist/discovery/workspaces.json +3 -3
  54. package/dist/hooks/dispatch.js +114 -7
  55. package/dist/install/install.mjs +7 -4
  56. package/dist/mcp/registry-manifest.json +3 -3
  57. package/dist/mcp/server.json +2 -2
  58. package/dist/mcp/server.mjs +3755 -1168
  59. package/docs/guidelines/agent-infra/failure-signatures.md +47 -12
  60. package/package.json +2 -2
  61. package/src/agent-src/scripts/archive_completed_roadmaps.ts +35 -1
  62. package/src/agent-src/scripts/roadmap_gates.ts +107 -3
  63. package/src/agent-src/templates/scripts/ownership-map.example.yml +1 -1
  64. package/src/config/cost-parity-budget.json +167 -0
  65. package/src/config/gate-coverage.yml +44 -5
  66. package/src/config/quorum-attendance-budget.json +39 -0
  67. package/src/scripts/_cli/cmd_doctor.ts +69 -1
  68. package/src/scripts/_cli/cmd_session_recycle.ts +25 -4
  69. package/src/scripts/_dispatch.bash +5 -3
  70. package/src/scripts/_lib/env_kill_switch.ts +37 -0
  71. package/src/scripts/_lib/orchestration_record.ts +45 -0
  72. package/src/scripts/_lib/security_lint.ts +18 -4
  73. package/src/scripts/_lib/self_repair.ts +60 -0
  74. package/src/scripts/_lib/self_repair_store.ts +65 -5
  75. package/src/scripts/_lib/subagent_capsule.ts +78 -1
  76. package/src/scripts/ai_council/clients.ts +31 -0
  77. package/src/scripts/ai_council/events_log.ts +130 -8
  78. package/src/scripts/ai_council/orchestrator.ts +50 -3
  79. package/src/scripts/ai_council/pricing.ts +48 -1
  80. package/src/scripts/ai_council/prompts.ts +165 -3
  81. package/src/scripts/ai_council/quorum.ts +30 -0
  82. package/src/scripts/ai_council/session.ts +11 -0
  83. package/src/scripts/ai_team/review_gate.ts +2 -2
  84. package/src/scripts/ask_transport.ts +20 -1
  85. package/src/scripts/build_discovery_manifest.ts +165 -0
  86. package/src/scripts/cache_realization_report.ts +38 -0
  87. package/src/scripts/check_claims.ts +51 -2
  88. package/src/scripts/check_release_highlights.ts +7 -1
  89. package/src/scripts/ci_time_ratio.ts +3 -1
  90. package/src/scripts/conformance_scan.ts +105 -0
  91. package/src/scripts/cost/track.mjs +39 -0
  92. package/src/scripts/cost_summary.ts +104 -1
  93. package/src/scripts/council_cli.ts +131 -13
  94. package/src/scripts/discovery_graph.ts +201 -27
  95. package/src/scripts/dispatch_economy_report.ts +5 -2
  96. package/src/scripts/dispatch_r2_reviewer.ts +102 -1
  97. package/src/scripts/install.ts +20 -6
  98. package/src/scripts/lint_budget_ownership.ts +81 -0
  99. package/src/scripts/lint_handoffs.ts +92 -2
  100. package/src/scripts/lint_hedge_words.ts +317 -0
  101. package/src/scripts/lint_mcp_config_security.ts +1 -1
  102. package/src/scripts/lint_skill_frontmatter_safety.ts +56 -2
  103. package/src/scripts/lint_workflow_paths.ts +384 -0
  104. package/src/scripts/preamble_byte_census.ts +9 -1
  105. package/src/scripts/report_carrier_divergence.ts +10 -0
  106. package/src/scripts/report_conformance_funnel.ts +40 -0
  107. package/src/scripts/schemas/subagent.schema.json +3 -2
  108. package/src/scripts/self_repair_cli.ts +26 -1
  109. package/src/scripts/skill_linter.ts +58 -2
@@ -66,10 +66,11 @@ import {
66
66
  _wizard_state_path,
67
67
  main,
68
68
  shutilWhich
69
- } from "./chunk-542DZR4P.js";
69
+ } from "./chunk-REMEZSVP.js";
70
70
  import "./chunk-FTAISGDQ.js";
71
71
  import "./chunk-EJITJBJX.js";
72
- import "./chunk-LVRYBKTI.js";
72
+ import "./chunk-Q26HT4QT.js";
73
+ import "./chunk-YPAWXXXR.js";
73
74
  import "./chunk-PZWRPRWP.js";
74
75
  import "./chunk-736JCWLM.js";
75
76
  import "./chunk-63WSP6YZ.js";
@@ -9,7 +9,7 @@ import {
9
9
  KIRO_MARKER,
10
10
  ROOCODE_MARKER,
11
11
  ZED_MARKER
12
- } from "./chunk-ITIQSGOQ.js";
12
+ } from "./chunk-MA4GFWDY.js";
13
13
  import "./chunk-UVKNIJH2.js";
14
14
  import "./chunk-DS6BLDMG.js";
15
15
  import "./chunk-BKO2AZ7Z.js";
@@ -15,15 +15,15 @@ import {
15
15
  scanEnvelopeDirectives,
16
16
  validateRecycleEnvelope,
17
17
  wrapAsPriorSessionData
18
- } from "./chunk-2WELHO3P.js";
19
- import "./chunk-3EWYC3YK.js";
18
+ } from "./chunk-I5EAFRII.js";
19
+ import "./chunk-UEZ7D35A.js";
20
20
  import {
21
21
  readHookStdin
22
22
  } from "./chunk-MMJL4TIX.js";
23
23
  import {
24
24
  _RAW_KEY_PREFIXES,
25
25
  hardenedSpawnEnv
26
- } from "./chunk-LVRYBKTI.js";
26
+ } from "./chunk-YPAWXXXR.js";
27
27
  import "./chunk-PZWRPRWP.js";
28
28
  import "./chunk-JEJABGKB.js";
29
29
  import "./chunk-NDJLNC6Q.js";
@@ -34,7 +34,7 @@ import "./chunk-J55WI3RR.js";
34
34
  import { spawnSync as spawnSync2 } from "node:child_process";
35
35
  import * as fs5 from "node:fs";
36
36
  import process4 from "node:process";
37
- import * as path6 from "node:path";
37
+ import * as path5 from "node:path";
38
38
  import { fileURLToPath as fileURLToPath2, pathToFileURL } from "node:url";
39
39
 
40
40
  // src/scripts/_cli/handoff_generate.ts
@@ -706,24 +706,17 @@ function write_handoff(text, options = {}) {
706
706
  // src/scripts/_cli/handoff_sessions.ts
707
707
  import * as fs4 from "node:fs";
708
708
  import * as os from "node:os";
709
- import * as path5 from "node:path";
709
+ import * as path4 from "node:path";
710
710
 
711
711
  // src/scripts/_lib/session_eol.ts
712
712
  import * as crypto from "node:crypto";
713
713
  import * as fs3 from "node:fs";
714
- import * as path4 from "node:path";
715
-
716
- // src/scripts/_lib/cc_transcript.ts
717
714
  import * as path3 from "node:path";
718
- import { homedir } from "node:os";
719
- var DEFAULT_PROJECTS_ROOT = path3.join(homedir(), ".claude", "projects");
720
-
721
- // src/scripts/_lib/session_eol.ts
722
715
  function eolStateDir(workspaceRoot) {
723
- return path4.join(workspaceRoot, "agents", "runtime", "state", "session-eol");
716
+ return path3.join(workspaceRoot, "agents", "runtime", "state", "session-eol");
724
717
  }
725
718
  function eolStateFile(workspaceRoot, sessionKey) {
726
- return path4.join(eolStateDir(workspaceRoot), `${sessionKey}.json`);
719
+ return path3.join(eolStateDir(workspaceRoot), `${sessionKey}.json`);
727
720
  }
728
721
  function eolSessionKey(raw) {
729
722
  return crypto.createHash("sha256").update(raw || "unknown-session").digest("hex");
@@ -779,10 +772,10 @@ function _parse_json2(line) {
779
772
  }
780
773
  return null;
781
774
  }
782
- var CHAT_HISTORY_REL = path5.join("agents", "runtime", ".agent-chat-history");
775
+ var CHAT_HISTORY_REL = path4.join("agents", "runtime", ".agent-chat-history");
783
776
  function _chat_history_path(opts) {
784
777
  if (opts.chatHistoryPath) return opts.chatHistoryPath;
785
- return process.env.AGENT_CHAT_HISTORY_FILE || path5.join(opts.cwd ?? process.cwd(), CHAT_HISTORY_REL);
778
+ return process.env.AGENT_CHAT_HISTORY_FILE || path4.join(opts.cwd ?? process.cwd(), CHAT_HISTORY_REL);
786
779
  }
787
780
  function _chat_history_summaries(histPath) {
788
781
  const bySession = /* @__PURE__ */ new Map();
@@ -867,9 +860,9 @@ function _scan_claude_transcript(file) {
867
860
  return scan;
868
861
  }
869
862
  function _claude_transcript_sessions(opts, cap) {
870
- const root = opts.claudeProjectsRoot ?? path5.join(os.homedir(), ".claude", "projects");
863
+ const root = opts.claudeProjectsRoot ?? path4.join(os.homedir(), ".claude", "projects");
871
864
  const cwd = opts.cwd ?? process.cwd();
872
- const projectDir = path5.join(root, encode_project_path(cwd));
865
+ const projectDir = path4.join(root, encode_project_path(cwd));
873
866
  let names;
874
867
  try {
875
868
  names = fs4.readdirSync(projectDir).filter((n) => n.endsWith(".jsonl"));
@@ -877,9 +870,9 @@ function _claude_transcript_sessions(opts, cap) {
877
870
  return [];
878
871
  }
879
872
  const files = names.map((n) => {
880
- const full = path5.join(projectDir, n);
873
+ const full = path4.join(projectDir, n);
881
874
  try {
882
- return { full, id: path5.basename(n, ".jsonl"), mtime: fs4.statSync(full).mtimeMs };
875
+ return { full, id: path4.basename(n, ".jsonl"), mtime: fs4.statSync(full).mtimeMs };
883
876
  } catch {
884
877
  return null;
885
878
  }
@@ -940,12 +933,12 @@ function _codex_files(root) {
940
933
  continue;
941
934
  }
942
935
  for (const e of entries) {
943
- const full = path5.join(dir, e.name);
936
+ const full = path4.join(dir, e.name);
944
937
  if (e.isDirectory()) stack.push(full);
945
938
  else if (e.isFile() && e.name.endsWith(".jsonl")) out.push(full);
946
939
  }
947
940
  }
948
- return out.sort((a, b) => path5.basename(a) < path5.basename(b) ? 1 : -1);
941
+ return out.sort((a, b) => path4.basename(a) < path4.basename(b) ? 1 : -1);
949
942
  }
950
943
  function _codex_prompt_text(rec) {
951
944
  if (rec.type !== "event_msg") return null;
@@ -973,13 +966,13 @@ function _scan_codex_session(file) {
973
966
  return scan;
974
967
  }
975
968
  function _matches_repo(sessionCwd, repoCwd) {
976
- const norm = (p) => path5.resolve(p).replace(/\/+$/, "");
969
+ const norm = (p) => path4.resolve(p).replace(/\/+$/, "");
977
970
  const a = norm(sessionCwd);
978
971
  const b = norm(repoCwd);
979
- return a === b || a.startsWith(b + path5.sep);
972
+ return a === b || a.startsWith(b + path4.sep);
980
973
  }
981
974
  function _codex_sessions(opts, cap) {
982
- const root = opts.codexSessionsRoot ?? path5.join(os.homedir(), ".codex", "sessions");
975
+ const root = opts.codexSessionsRoot ?? path4.join(os.homedir(), ".codex", "sessions");
983
976
  const cwd = opts.cwd ?? process.cwd();
984
977
  const matching = [];
985
978
  for (const file of _codex_files(root)) {
@@ -1239,7 +1232,7 @@ function main2(argv = null, options = {}) {
1239
1232
  throw exc;
1240
1233
  }
1241
1234
  const envRoot = process4.env.AGENT_CONFIG_ROOT_OVERRIDE === "1" ? process4.env.AGENT_CONFIG_PROJECT_ROOT || null : null;
1242
- const root = path6.resolve(opts.root ?? envRoot ?? process4.cwd());
1235
+ const root = path5.resolve(opts.root ?? envRoot ?? process4.cwd());
1243
1236
  const sessions = list_handoff_sessions({ cwd: root });
1244
1237
  if (opts.list) {
1245
1238
  if (sessions.length === 0) {
@@ -1335,13 +1328,13 @@ function _isCliEntry() {
1335
1328
  if (process4.argv[1] === void 0) {
1336
1329
  return false;
1337
1330
  }
1338
- const argvUrl = pathToFileURL(path6.resolve(process4.argv[1])).href;
1331
+ const argvUrl = pathToFileURL(path5.resolve(process4.argv[1])).href;
1339
1332
  if (import.meta.url === argvUrl) {
1340
1333
  return true;
1341
1334
  }
1342
1335
  try {
1343
1336
  const here = fs5.realpathSync(fileURLToPath2(import.meta.url));
1344
- const argv = fs5.realpathSync(path6.resolve(process4.argv[1]));
1337
+ const argv = fs5.realpathSync(path5.resolve(process4.argv[1]));
1345
1338
  return here === argv;
1346
1339
  } catch {
1347
1340
  return false;
@@ -2,7 +2,7 @@
2
2
  import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
3
3
  import {
4
4
  memory_get_v1
5
- } from "./chunk-3EWYC3YK.js";
5
+ } from "./chunk-UEZ7D35A.js";
6
6
  import "./chunk-OY53J6II.js";
7
7
  import "./chunk-J55WI3RR.js";
8
8
 
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
2
2
  import {
3
3
  PROJECT_BRIDGE_MARKERS
4
- } from "./chunk-ITIQSGOQ.js";
4
+ } from "./chunk-MA4GFWDY.js";
5
5
  import "./chunk-UVKNIJH2.js";
6
6
  import "./chunk-DS6BLDMG.js";
7
7
  import "./chunk-BKO2AZ7Z.js";
@@ -3,7 +3,7 @@ import { createRequire as __acCreateRequire } from 'node:module'; const require
3
3
  import {
4
4
  read_entries
5
5
  } from "./chunk-QEEB4LHO.js";
6
- import "./chunk-3EWYC3YK.js";
6
+ import "./chunk-UEZ7D35A.js";
7
7
  import "./chunk-MMJL4TIX.js";
8
8
  import {
9
9
  match_prompt
@@ -5,7 +5,7 @@ import {
5
5
  RECYCLE_ENVELOPE_REL,
6
6
  collectGrounding,
7
7
  validateRecycleEnvelope
8
- } from "./chunk-2WELHO3P.js";
8
+ } from "./chunk-I5EAFRII.js";
9
9
  import {
10
10
  atomic_write_json
11
11
  } from "./chunk-EJITJBJX.js";
@@ -30,8 +30,13 @@ function templateEnvelope() {
30
30
  acceptance_criteria: ["<what done means, one line each>"],
31
31
  remaining: ["<open work, one line each>"],
32
32
  not_carried_forward: ["<what the successor must re-derive from source>"],
33
- decisions: ["<decision \u2014 one-line rationale>"],
33
+ decisions: ["<decision \u2014 one-line rationale> [reversible]"],
34
34
  constraints: ["<binding constraint>"],
35
+ // Ships EMPTY, unlike the prose lists above: the entries are path refs,
36
+ // and a `<placeholder>` left in by a hurried writer would be a fake path
37
+ // rather than obvious filler. An empty list is also the honest default —
38
+ // nothing off limits is the common case.
39
+ do_not_touch: [],
35
40
  open_worker_envelopes: [],
36
41
  artifact_paths: ["<path to a deliverable / note / evidence file>"],
37
42
  assumptions: [],
@@ -46,6 +51,8 @@ function parseArgv(argv) {
46
51
  const a = argv[i];
47
52
  if (a === "--template") {
48
53
  parsed.template = true;
54
+ } else if (a === "--verify") {
55
+ parsed.verify = true;
49
56
  } else if (a === "--file") {
50
57
  const value = argv[i + 1];
51
58
  if (!value) return { ok: false, message: "--file requires a path" };
@@ -110,6 +117,10 @@ function runSessionRecycle(input, opts) {
110
117
  ]
111
118
  };
112
119
  }
120
+ if (opts.verify === true) {
121
+ out.push(`recycle envelope VALID \u2014 ${bytes} bytes, not written (--verify).`);
122
+ return { code: 0, out, err };
123
+ }
113
124
  const target = path.join(projectRoot, RECYCLE_ENVELOPE_REL);
114
125
  try {
115
126
  atomic_write_json(target, envelope);
@@ -130,9 +141,10 @@ function main(argv = process.argv.slice(2)) {
130
141
  const parsed = parseArgv(argv);
131
142
  if (!parsed.ok) {
132
143
  const usage = [
133
- "usage: agent-config session:recycle [--file <envelope.json>] [--template]",
144
+ "usage: agent-config session:recycle [--file <envelope.json>] [--template] [--verify]",
134
145
  " --file <path> read the envelope JSON from a file (default: stdin)",
135
- " --template print a skeleton envelope and exit"
146
+ " --template print a skeleton envelope and exit",
147
+ " --verify validate only \u2014 same rejections, no write"
136
148
  ].join("\n");
137
149
  if (parsed.message === "usage") {
138
150
  process.stdout.write(`${usage}
@@ -164,7 +176,10 @@ ${usage}
164
176
  `);
165
177
  return 2;
166
178
  }
167
- const result = runSessionRecycle(input, { cwd: process.cwd() });
179
+ const result = runSessionRecycle(input, {
180
+ cwd: process.cwd(),
181
+ ...parsed.verify === true ? { verify: true } : {}
182
+ });
168
183
  for (const line of result.out) process.stdout.write(`${line}
169
184
  `);
170
185
  for (const line of result.err) process.stderr.write(`${line}
@@ -3,9 +3,11 @@ import {
3
3
  buildSettingsClassIndex,
4
4
  classOfPath,
5
5
  getSettingsLeaf,
6
- load,
7
6
  parseSettingsClassRows
8
- } from "./chunk-PFBV6XRT.js";
7
+ } from "./chunk-HTIU3W56.js";
8
+ import {
9
+ load
10
+ } from "./chunk-Q26HT4QT.js";
9
11
  import {
10
12
  MERGEABLE_KEYS,
11
13
  SETTINGS_CARVE_OUT,
@@ -3,7 +3,7 @@ import {
3
3
  GLOBAL_AGENT_SETTINGS_PATH,
4
4
  GLOBAL_USER_SETTINGS_PATH,
5
5
  SETTINGS_FILE
6
- } from "./chunk-ITIQSGOQ.js";
6
+ } from "./chunk-MA4GFWDY.js";
7
7
  import "./chunk-UVKNIJH2.js";
8
8
  import "./chunk-DS6BLDMG.js";
9
9
  import "./chunk-BKO2AZ7Z.js";
@@ -1,11 +1,13 @@
1
1
  import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
2
2
  import {
3
3
  buildSettingsClassIndex,
4
- dump,
5
4
  getSettingsLeaf,
6
- load,
7
5
  parseSettingsClassRows
8
- } from "./chunk-PFBV6XRT.js";
6
+ } from "./chunk-HTIU3W56.js";
7
+ import {
8
+ dump,
9
+ load
10
+ } from "./chunk-Q26HT4QT.js";
9
11
  import {
10
12
  external_exports,
11
13
  settingsSchema
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
2
2
  import {
3
3
  main
4
- } from "./chunk-ITIQSGOQ.js";
4
+ } from "./chunk-MA4GFWDY.js";
5
5
  import "./chunk-UVKNIJH2.js";
6
6
  import "./chunk-DS6BLDMG.js";
7
7
  import "./chunk-BKO2AZ7Z.js";
@@ -3,7 +3,7 @@ import {
3
3
  PROJECT_BRIDGE_MARKERS,
4
4
  USER_SCOPE_PATHS,
5
5
  subtract_pointers
6
- } from "./chunk-ITIQSGOQ.js";
6
+ } from "./chunk-MA4GFWDY.js";
7
7
  import "./chunk-UVKNIJH2.js";
8
8
  import "./chunk-DS6BLDMG.js";
9
9
  import "./chunk-BKO2AZ7Z.js";
@@ -3,7 +3,7 @@ import { createRequire as __acCreateRequire } from 'node:module'; const require
3
3
  import {
4
4
  PROJECT_BRIDGE_MARKERS,
5
5
  USER_SCOPE_PATHS
6
- } from "./chunk-ITIQSGOQ.js";
6
+ } from "./chunk-MA4GFWDY.js";
7
7
  import "./chunk-UVKNIJH2.js";
8
8
  import "./chunk-DS6BLDMG.js";
9
9
  import "./chunk-BKO2AZ7Z.js";
@@ -1,6 +1,6 @@
1
1
  # Discovery — Deprecation Report
2
2
 
3
- - Generated: `2026-08-10T20:19:17Z`
3
+ - Generated: `2026-08-11T20:26:09Z`
4
4
  - Deprecated artefacts: **0**
5
5
 
6
6
  _None. Tree is clean._
@@ -1643,7 +1643,7 @@
1643
1643
  },
1644
1644
  {
1645
1645
  "category": "command",
1646
- "checksum": "sha256:5ee9f9fa3f5f2ec5b2894d262d2011bfbec806b4decaeddb4fa3fecb6603b10e",
1646
+ "checksum": "sha256:eb47b37ef426c962fffcaf1165d69dbe23c5ee9d95e0207b945769766d9a6d0a",
1647
1647
  "install": {
1648
1648
  "default": true,
1649
1649
  "removable": false
@@ -2573,7 +2573,7 @@
2573
2573
  },
2574
2574
  {
2575
2575
  "category": "command",
2576
- "checksum": "sha256:b718faefe3c50937e0b4851d26086d9aa8a9573c74e3e9fd371d2d0935acaa02",
2576
+ "checksum": "sha256:0181143b6ba9ee8ed18fc3069d175e1702a5a8b36bf9694fa4a07f7c98f52ca5",
2577
2577
  "install": {
2578
2578
  "default": true,
2579
2579
  "removable": false
@@ -5992,7 +5992,7 @@
5992
5992
  },
5993
5993
  {
5994
5994
  "category": "rule",
5995
- "checksum": "sha256:451a0a10bb077b527aa2febc9f6b9838e350c186d52942b08057b9c9cc036c59",
5995
+ "checksum": "sha256:3df203c839e8abe438414ee36fd99004b519f23a465e97f0a531d1aa3178b564",
5996
5996
  "install": {
5997
5997
  "default": true,
5998
5998
  "removable": false
@@ -9271,7 +9271,7 @@
9271
9271
  },
9272
9272
  {
9273
9273
  "category": "skill",
9274
- "checksum": "sha256:bae8a558172e50ef861a1e8e0132d24e2c52c4ac136b3c7562735b92c4d6d04d",
9274
+ "checksum": "sha256:f7a67c0b8382e292ed0e98d36e683644c66b8291f404f75d321a89aed7574ae3",
9275
9275
  "install": {
9276
9276
  "default": true,
9277
9277
  "removable": true
@@ -9645,7 +9645,7 @@
9645
9645
  },
9646
9646
  {
9647
9647
  "category": "skill",
9648
- "checksum": "sha256:169fed9cc69e866501e9f8e4423aa7226cb92c0c0380a20a6f4d5a4f32ec6925",
9648
+ "checksum": "sha256:7d2f4b3b162943305cf64778e2e63b67331f7861bf0e2eec392293e9579445d8",
9649
9649
  "install": {
9650
9650
  "default": true,
9651
9651
  "removable": true
@@ -9777,7 +9777,7 @@
9777
9777
  },
9778
9778
  {
9779
9779
  "category": "skill",
9780
- "checksum": "sha256:b27163ddb3c75471cc1b9779892c073cbe28d5c96d729c7c82f9ee81c3cb4d05",
9780
+ "checksum": "sha256:79282414c98571fd2370f0852d865ded3648a01952651c9e83676cd5c8c0b501",
9781
9781
  "install": {
9782
9782
  "default": true,
9783
9783
  "removable": false
@@ -11141,7 +11141,7 @@
11141
11141
  },
11142
11142
  {
11143
11143
  "category": "skill",
11144
- "checksum": "sha256:8110f2c18f2cdc7093dbe48e9d8ed3c6713fdce5720442dc4a90b6ea6d24282a",
11144
+ "checksum": "sha256:1609f4eb7897ebce35da6146fe339bde8e4b2018ad83fd79c2cf849aaf93fb44",
11145
11145
  "install": {
11146
11146
  "default": false,
11147
11147
  "removable": true
@@ -12775,7 +12775,7 @@
12775
12775
  },
12776
12776
  {
12777
12777
  "category": "skill",
12778
- "checksum": "sha256:085ad155c77608b45ad63c5ebcfb3e08b2d7d6e69bd0d938860fe2f19eb245f0",
12778
+ "checksum": "sha256:d547a77483a8022c0a61d7efcb254e287e966ff4bf942e0155ca41824859a130",
12779
12779
  "install": {
12780
12780
  "default": false,
12781
12781
  "removable": true
@@ -13061,7 +13061,7 @@
13061
13061
  },
13062
13062
  {
13063
13063
  "category": "skill",
13064
- "checksum": "sha256:eb560f32c715b1657c504cdf750ceb0cfb585c3428d544a85cf8a825ac45b25e",
13064
+ "checksum": "sha256:5971a67fecfb6ac2b7b003a035a172af0ef54e2fda487f0118850deb3d8fb937",
13065
13065
  "install": {
13066
13066
  "default": true,
13067
13067
  "removable": false
@@ -13237,7 +13237,7 @@
13237
13237
  },
13238
13238
  {
13239
13239
  "category": "skill",
13240
- "checksum": "sha256:671eb67f32df15e5a7a8e937ca694da71fd325a62e1303b57fdcc05899458514",
13240
+ "checksum": "sha256:e0d38b712e69fa5f9bb8fe0ec9d8ba1020c2a45e0502e32a915259091e612a82",
13241
13241
  "install": {
13242
13242
  "default": true,
13243
13243
  "removable": false
@@ -13589,7 +13589,7 @@
13589
13589
  },
13590
13590
  {
13591
13591
  "category": "skill",
13592
- "checksum": "sha256:b2e8847e0acb03cad8c71f095d29d311ee76b4a11760ab9b21c5b07797b955df",
13592
+ "checksum": "sha256:1a3c1965abf5ebfbeac3b17142c0bc84a955156ea8fa2928c048aeb540ce8ff1",
13593
13593
  "install": {
13594
13594
  "default": true,
13595
13595
  "removable": false
@@ -13809,7 +13809,7 @@
13809
13809
  },
13810
13810
  {
13811
13811
  "category": "skill",
13812
- "checksum": "sha256:c8b5af3f19e2c2de1b88a7ce140aa681f09006a2f44290303f709eb7bc1ba9cc",
13812
+ "checksum": "sha256:1d7259677165ad794e4f16d652830d937ce21f56dbfc0aa440869163f3259792",
13813
13813
  "install": {
13814
13814
  "default": true,
13815
13815
  "removable": false
@@ -13831,7 +13831,7 @@
13831
13831
  },
13832
13832
  {
13833
13833
  "category": "skill",
13834
- "checksum": "sha256:47ca9fbe052b2046cc1897cf20cd52352de7ad557f7f1eed4d842f9291c53963",
13834
+ "checksum": "sha256:89e099d1d527ed2000dd3bbe43dddac623487b6f75b08f4fb0a6b9c3ec39dfb8",
13835
13835
  "install": {
13836
13836
  "default": true,
13837
13837
  "removable": false
@@ -14469,7 +14469,7 @@
14469
14469
  },
14470
14470
  {
14471
14471
  "category": "subagent",
14472
- "checksum": "sha256:40f7200ee973c51109102b2cd6949e20c6e031f29aeb6104644f9d5e270e66fd",
14472
+ "checksum": "sha256:d57dfc1457cf467402e4ee1187cd162cbb62ddecb35b101d6e1aae6e2f103baa",
14473
14473
  "install": {
14474
14474
  "default": false,
14475
14475
  "removable": true
@@ -14486,7 +14486,7 @@
14486
14486
  "workspaces": []
14487
14487
  }
14488
14488
  ],
14489
- "checksum": "sha256:4e2e2973fd45560962626d01db0162ba85d636050dbb84b4fefb0c7c07ed3bce",
14489
+ "checksum": "sha256:578a1ff7f0b187812c772bce1b731880d7bca27d0f84a864a00b493e857fa21e",
14490
14490
  "deprecations": [
14491
14491
  {
14492
14492
  "key": "tier",
@@ -14629,7 +14629,7 @@
14629
14629
  "reason": "scaffold template for ticket-bundle tickets (ADR-101); carries no runtime frontmatter — emit-tickets fills it in per ticket"
14630
14630
  }
14631
14631
  ],
14632
- "generated_at": "2026-08-10T20:19:17Z",
14632
+ "generated_at": "2026-08-11T20:26:09Z",
14633
14633
  "packs": [
14634
14634
  {
14635
14635
  "artefact_count": 118,
@@ -15482,7 +15482,7 @@
15482
15482
  ]
15483
15483
  }
15484
15484
  ],
15485
- "scanner_version": "c24312e116f8",
15485
+ "scanner_version": "1eaf68b6e9c9",
15486
15486
  "stats": {
15487
15487
  "by_category": {
15488
15488
  "command": 196,
@@ -1 +1 @@
1
- 1690f54c3b7262c13b6a12398d8750b90d202f7cbf332b2484041f6cdcc92388 discovery-manifest.json
1
+ 82fbc2b79bb7b97c663111542bbfdd08c3c798e17c6f992e19689a71c4d7403c discovery-manifest.json
@@ -1,7 +1,7 @@
1
1
  # Discovery Manifest — Summary
2
2
 
3
- - Generated: `2026-08-10T20:19:17Z`
4
- - Scanner: `c24312e116f8`
3
+ - Generated: `2026-08-11T20:26:09Z`
4
+ - Scanner: `1eaf68b6e9c9`
5
5
  - Artefacts: **603**
6
6
  - Unassigned: **0**
7
7
 
@@ -0,0 +1,17 @@
1
+ # Discovery — Dormancy Report
2
+
3
+ - Generated: `2026-08-11T20:26:09Z`
4
+ - Window: **6 months** without a commit
5
+
6
+ > Dormancy triggers **review, never auto-deprecation**
7
+ > (`docs/governance.md` § Skill lifecycle policy). A finished artefact and an
8
+ > abandoned one look identical from commit dates, so this is a prompt to ask
9
+ > "still earning its slot?" — never a removal list, and never a gate.
10
+
11
+ ## Signal unavailable
12
+
13
+ **No dormancy list is published**: shallow clone — a truncated history is indistinguishable from a dormant artefact. Re-run after `git fetch --unshallow`.
14
+
15
+ An empty section here would read as "nothing is dormant", which is a
16
+ different claim from "the signal could not be computed".
17
+
@@ -1,6 +1,6 @@
1
1
  # Discovery — Orphan Report
2
2
 
3
- - Generated: `2026-08-10T20:19:17Z`
3
+ - Generated: `2026-08-11T20:26:09Z`
4
4
  - Orphan artefacts: **0**
5
5
 
6
6
  > An orphan is an artefact whose declared pack has no other members.
@@ -1,6 +1,6 @@
1
1
  {
2
- "checksum": "sha256:4e2e2973fd45560962626d01db0162ba85d636050dbb84b4fefb0c7c07ed3bce",
3
- "generated_at": "2026-08-10T20:19:17Z",
2
+ "checksum": "sha256:578a1ff7f0b187812c772bce1b731880d7bca27d0f84a864a00b493e857fa21e",
3
+ "generated_at": "2026-08-11T20:26:09Z",
4
4
  "packs": [
5
5
  {
6
6
  "always_on": false,
@@ -1814,5 +1814,5 @@
1814
1814
  ]
1815
1815
  }
1816
1816
  ],
1817
- "scanner_version": "c24312e116f8"
1817
+ "scanner_version": "1eaf68b6e9c9"
1818
1818
  }
@@ -1,6 +1,6 @@
1
1
  # Discovery — Trust Report
2
2
 
3
- - Generated: `2026-08-10T20:19:17Z`
3
+ - Generated: `2026-08-11T20:26:09Z`
4
4
  - Workspaces tracked: **10**
5
5
  - Human-review-required artefacts: **3**
6
6
 
@@ -1,7 +1,7 @@
1
1
  {
2
- "checksum": "sha256:4e2e2973fd45560962626d01db0162ba85d636050dbb84b4fefb0c7c07ed3bce",
3
- "generated_at": "2026-08-10T20:19:17Z",
4
- "scanner_version": "c24312e116f8",
2
+ "checksum": "sha256:578a1ff7f0b187812c772bce1b731880d7bca27d0f84a864a00b493e857fa21e",
3
+ "generated_at": "2026-08-11T20:26:09Z",
4
+ "scanner_version": "1eaf68b6e9c9",
5
5
  "workspaces": [
6
6
  {
7
7
  "artefact_count": 202,