@event4u/agent-config 14.13.0 → 14.14.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 +116 -387
- package/dist/agent-src/commands/analyze/inbox.md +36 -0
- package/dist/agent-src/rules/code-comment-discipline.md +6 -0
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +6 -6
- package/dist/agent-src/scripts/guarded_baseline.ts +22 -7
- package/dist/agent-src/scripts/stubs_due.ts +118 -2
- package/dist/agent-src/scripts/update_roadmap_progress.ts +8 -8
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/cli-delegate/cmd_conformance.js +38 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +4 -4
- 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 +1438 -711
- package/dist/mcp/registry-manifest.json +2 -2
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +112 -17
- package/docs/guidelines/agent-infra/guarded-baseline.md +1 -1
- package/docs/guidelines/code-clarity.md +18 -0
- package/package.json +1 -1
- package/src/agent-src/scripts/archive_completed_roadmaps.ts +6 -6
- package/src/agent-src/scripts/guarded_baseline.ts +22 -7
- package/src/agent-src/scripts/stubs_due.ts +118 -2
- package/src/agent-src/scripts/update_roadmap_progress.ts +8 -8
- package/src/config/estate-count-budget.json +20 -1
- package/src/config/gate-coverage.yml +150 -0
- package/src/config/gate-violation-baselines.json +8 -3
- package/src/config/preamble-payload-budget.json +19 -11
- package/src/config/rule-stub-ceilings.json +14 -7
- package/src/scripts/_dispatch.bash +0 -4
- package/src/scripts/_lib/activation_ladder.ts +47 -3
- package/src/scripts/_lib/activation_receipt_producer.ts +341 -0
- package/src/scripts/_lib/adr_frontmatter.ts +26 -0
- package/src/scripts/_lib/candidate_pair_delta.ts +349 -0
- package/src/scripts/_lib/carrier_status.ts +118 -0
- package/src/scripts/_lib/cascade_stage_enumeration.ts +92 -0
- package/src/scripts/_lib/corpus_manifest.ts +726 -0
- package/src/scripts/_lib/delivery_arm_experiment.ts +18 -2
- package/src/scripts/_lib/estate_carrier_cases.ts +72 -0
- package/src/scripts/_lib/evaluation_cascade.ts +452 -0
- package/src/scripts/_lib/evolution_roi.ts +562 -0
- package/src/scripts/_lib/harness_evolution_guards.ts +10 -0
- package/src/scripts/_lib/lexical_shortlist.ts +215 -0
- package/src/scripts/_lib/llm_candidate_proposer.ts +461 -0
- package/src/scripts/_lib/llm_proposer_transport.ts +153 -0
- package/src/scripts/_lib/pathology_archive.ts +393 -0
- package/src/scripts/_lib/promotion_capability.ts +315 -0
- package/src/scripts/_lib/promotion_evidence.ts +414 -0
- package/src/scripts/_lib/promotion_review.ts +294 -0
- package/src/scripts/_lib/prompt_shape.ts +92 -0
- package/src/scripts/_lib/release_highlights.ts +70 -1
- package/src/scripts/_lib/release_material.ts +125 -2
- package/src/scripts/_lib/routing_corpus.ts +307 -0
- package/src/scripts/_lib/routing_index_input.ts +104 -0
- package/src/scripts/_lib/rule_injection.ts +22 -1
- package/src/scripts/_lib/semantic_noop.ts +167 -0
- package/src/scripts/activation_receipt.ts +258 -0
- package/src/scripts/ai_council/cross_exam.ts +128 -0
- package/src/scripts/ai_council/explain_route.ts +157 -0
- package/src/scripts/ai_council/information_gain.ts +293 -0
- package/src/scripts/ai_council/leakage_corpus.ts +385 -0
- package/src/scripts/ai_council/leakage_patterns.ts +453 -0
- package/src/scripts/ai_council/minority_retention.ts +171 -0
- package/src/scripts/ai_council/recouncil_savings.ts +299 -0
- package/src/scripts/ai_council/replay_route.ts +223 -0
- package/src/scripts/ai_council/reviewer_assignment.ts +279 -0
- package/src/scripts/ai_council/routing_training_row.ts +197 -0
- package/src/scripts/ai_council/synthesis_strategy.ts +159 -0
- package/src/scripts/check_adr_frontmatter.ts +4 -9
- package/src/scripts/check_estate_count.ts +205 -24
- package/src/scripts/check_release_highlights.ts +96 -13
- package/src/scripts/check_roadmap_trackable.ts +17 -2
- package/src/scripts/corpus_manifest.ts +235 -0
- package/src/scripts/evolution_lab.ts +181 -8
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +28 -6
- package/src/scripts/hooks/comment_discipline_hook.ts +146 -0
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/turn_end_gate_hook.ts +9 -1
- package/src/scripts/language_mirror_hook.ts +14 -2
- package/src/scripts/lint_carrier_integrity.ts +820 -0
- package/src/scripts/lint_code_comments.ts +643 -0
- package/src/scripts/lint_plan_risk_register.ts +39 -19
- package/src/scripts/lint_promotion_paths.ts +779 -0
- package/src/scripts/llm_propose.ts +256 -0
- package/src/scripts/measure_delivery_sets.ts +361 -0
- package/src/scripts/measure_routing_signal.ts +307 -0
- package/src/scripts/model_rule_injection.ts +19 -3
- package/src/scripts/probe_council_retention.ts +495 -0
- package/src/scripts/release.ts +21 -37
- package/src/scripts/release_drill.ts +143 -0
- package/src/scripts/release_env.ts +35 -0
- package/src/scripts/release_publication.ts +84 -0
|
@@ -7,10 +7,12 @@
|
|
|
7
7
|
* and § 6 (exit-code contract). A divergence from that contract is a
|
|
8
8
|
* validator bug, never a contract reinterpretation.
|
|
9
9
|
*
|
|
10
|
-
* Corpus: ready (non-draft) roadmap files directly under `agents/roadmaps/`
|
|
10
|
+
* Corpus: ready (non-draft) roadmap files directly under `agents/roadmaps/` code-comment-allow provenance-comment -- the path is this script's operand, not where the code came from
|
|
11
11
|
* (top level only — `archive/`, `skipped/`, `later/`, `stubs/` excluded, as
|
|
12
|
-
* are `template.md` and `dashboard*`). `status: draft`
|
|
13
|
-
* file
|
|
12
|
+
* are `template.md` and `dashboard*`). `status: draft` and `status: carrier`
|
|
13
|
+
* frontmatter exempt a file, each reported under its own name (`draft-exempt`
|
|
14
|
+
* / `carrier-exempt`) and still counted as scanned — one label for two states
|
|
15
|
+
* made the gate's own output name a state it had not acted on.
|
|
14
16
|
*
|
|
15
17
|
* Checks per ready file:
|
|
16
18
|
* 1. `## Risk Register` section exists — missing = fail unless the
|
|
@@ -229,7 +231,7 @@ function _isSeparatorRow(line: string): boolean {
|
|
|
229
231
|
}
|
|
230
232
|
|
|
231
233
|
/**
|
|
232
|
-
* § 1.2 — validate the risk table rows found in `bodyLines` (section body
|
|
234
|
+
* § 1.2 — validate the risk table rows found in `bodyLines` (section body code-comment-allow report-comment -- a section marker in this gate's own numbered spec, not an analysis report
|
|
233
235
|
* after the marker). `startLine` is the 1-based document line of the first
|
|
234
236
|
* body line, used for violation line numbers. Returns violations; the caller
|
|
235
237
|
* decides emptiness handling.
|
|
@@ -326,20 +328,37 @@ export function validateTable(
|
|
|
326
328
|
return { headerFound, rowCount, violations };
|
|
327
329
|
}
|
|
328
330
|
|
|
329
|
-
/**
|
|
330
|
-
export
|
|
331
|
+
/** A frontmatter status that exempts the file, or `null` when none does. */
|
|
332
|
+
export type ExemptingStatus = 'draft' | 'carrier';
|
|
333
|
+
|
|
334
|
+
/**
|
|
335
|
+
* Which frontmatter status exempts this file, per contract § 1.
|
|
336
|
+
*
|
|
337
|
+
* `draft` and `carrier` both exempt, and WHICH one is returned rather than a
|
|
338
|
+
* bare boolean: the previous predicate answered "is this exempt" and the gate
|
|
339
|
+
* then printed `draft-exempt` for a carrier, so its own output named a state it
|
|
340
|
+
* had not acted on.
|
|
341
|
+
*
|
|
342
|
+
* A carrier is not a plan. It holds obligations deferred out of an archived
|
|
343
|
+
* parent, each with an unmet resumption trigger, so a plan risk register for it
|
|
344
|
+
* would be manufactured rather than reported. Same category reason that exempts
|
|
345
|
+
* it from `check_roadmap_trackable`'s `## Phase` requirement.
|
|
346
|
+
*/
|
|
347
|
+
export function exemptingStatus(text: string): ExemptingStatus | null {
|
|
331
348
|
const lines = _splitLines(text);
|
|
332
|
-
if ((lines[0] ?? '').trim() !== '---') return
|
|
349
|
+
if ((lines[0] ?? '').trim() !== '---') return null;
|
|
333
350
|
for (let i = 1; i < lines.length; i++) {
|
|
334
351
|
const line = lines[i] as string;
|
|
335
|
-
if (line.trim() === '---') return
|
|
336
|
-
|
|
352
|
+
if (line.trim() === '---') return null;
|
|
353
|
+
const m = /^status:\s*(draft|carrier)\s*$/.exec(line);
|
|
354
|
+
if (m !== null) return m[1] as ExemptingStatus;
|
|
337
355
|
}
|
|
338
|
-
return
|
|
356
|
+
return null;
|
|
339
357
|
}
|
|
340
358
|
|
|
341
359
|
export interface ContentResult {
|
|
342
|
-
|
|
360
|
+
/** The status that exempted the file, or `null` when it was checked. */
|
|
361
|
+
exempt: ExemptingStatus | null;
|
|
343
362
|
registerMissing: boolean;
|
|
344
363
|
/** Parsed `reviewed:` date when the marker is valid; null otherwise. */
|
|
345
364
|
reviewed: string | null;
|
|
@@ -349,13 +368,14 @@ export interface ContentResult {
|
|
|
349
368
|
/** Pure content-level Gate-R1 check (no git — grandfather/staleness live in checkFile). */
|
|
350
369
|
export function checkContent(file: string, text: string): ContentResult {
|
|
351
370
|
const result: ContentResult = {
|
|
352
|
-
|
|
371
|
+
exempt: null,
|
|
353
372
|
registerMissing: false,
|
|
354
373
|
reviewed: null,
|
|
355
374
|
violations: [],
|
|
356
375
|
};
|
|
357
|
-
|
|
358
|
-
|
|
376
|
+
const exempt = exemptingStatus(text);
|
|
377
|
+
if (exempt !== null) {
|
|
378
|
+
result.exempt = exempt;
|
|
359
379
|
return result;
|
|
360
380
|
}
|
|
361
381
|
const lines = _linesOutsideFences(text);
|
|
@@ -572,7 +592,7 @@ function _blobAt(absPath: string, sha: string): string | null {
|
|
|
572
592
|
return _git(root, ['show', `${sha}:${rel}`]);
|
|
573
593
|
}
|
|
574
594
|
|
|
575
|
-
export type FileStatus = 'ok' | 'draft-exempt' | 'grandfathered' | 'fail';
|
|
595
|
+
export type FileStatus = 'ok' | 'draft-exempt' | 'carrier-exempt' | 'grandfathered' | 'fail';
|
|
576
596
|
|
|
577
597
|
export interface FileResult {
|
|
578
598
|
file: string;
|
|
@@ -584,8 +604,8 @@ export interface FileResult {
|
|
|
584
604
|
export function checkFile(absPath: string): FileResult {
|
|
585
605
|
const text = fs.readFileSync(absPath, 'utf-8');
|
|
586
606
|
const content = checkContent(absPath, text);
|
|
587
|
-
if (content.
|
|
588
|
-
return { file: absPath, status:
|
|
607
|
+
if (content.exempt !== null) {
|
|
608
|
+
return { file: absPath, status: `${content.exempt}-exempt`, violations: [] };
|
|
589
609
|
}
|
|
590
610
|
if (content.registerMissing) {
|
|
591
611
|
// Grandfather clause (contract § 1): exempt while feature-equal with
|
|
@@ -859,8 +879,8 @@ export function main(argv?: readonly string[]): number {
|
|
|
859
879
|
for (const p of targets) {
|
|
860
880
|
const result = checkFile(p);
|
|
861
881
|
scanned += 1;
|
|
862
|
-
if (result.status === 'draft-exempt') {
|
|
863
|
-
statusLines.push(`
|
|
882
|
+
if (result.status === 'draft-exempt' || result.status === 'carrier-exempt') {
|
|
883
|
+
statusLines.push(` ${result.status}: ${p}`);
|
|
864
884
|
} else if (result.status === 'grandfathered') {
|
|
865
885
|
statusLines.push(` grandfathered: ${p}`);
|
|
866
886
|
}
|