@codedrifters/configulator 0.0.274 → 0.0.276

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/lib/index.d.ts CHANGED
@@ -513,6 +513,13 @@ declare const DEFAULT_STATUS_LABELS: ReadonlyArray<LabelDefinition>;
513
513
  declare const DEFAULT_PRIORITY_LABELS: ReadonlyArray<LabelDefinition>;
514
514
  /** Default type labels — one per conventional commit type. */
515
515
  declare const DEFAULT_TYPE_LABELS: ReadonlyArray<LabelDefinition>;
516
+ /**
517
+ * Hard limit GitHub's Labels API enforces on the `description` field.
518
+ * EndBug/label-sync rejects (and the API returns an opaque error for)
519
+ * any label whose description exceeds this length, which silently
520
+ * breaks the sync workflow downstream.
521
+ */
522
+ declare const MAX_LABEL_DESCRIPTION_LENGTH = 100;
516
523
  /**
517
524
  * Adds a labels config file and a GitHub Actions workflow that syncs
518
525
  * labels to the repository using EndBug/label-sync.
@@ -2275,117 +2282,6 @@ interface SkillEvalsConfig {
2275
2282
  */
2276
2283
  readonly emitRunner?: boolean;
2277
2284
  }
2278
- /*******************************************************************************
2279
- *
2280
- * Workflow Diagrams Config
2281
- *
2282
- ******************************************************************************/
2283
- /**
2284
- * Workflow-diagrams convention consumed by the `base` bundle and
2285
- * every phased-agent bundle. Documents the single hand-authored
2286
- * Mermaid-based diagrams page that visualises every agent's phase
2287
- * graph and every cross-agent handoff, and enforces the
2288
- * **diagram-touched-when-bundle-touched** rule: a change set that
2289
- * modifies a bundle's phase graph must also update the matching
2290
- * section in the diagrams page.
2291
- *
2292
- * The convention is deliberately content-free — configulator cannot
2293
- * ship meaningful diagrams because each consuming repo enables a
2294
- * different subset of bundles and customises agent labels, paths,
2295
- * and taxonomies via the Group A injection points. Instead the
2296
- * bundle renders the rule (what to author, when to update it) and
2297
- * optionally emits a starter page + a checker script.
2298
- *
2299
- * Every field is optional. When the whole config is absent the
2300
- * convention ships **enabled** with the documented default diagrams
2301
- * path (`docs/src/content/docs/agents/workflows.md`), the default
2302
- * bundle-path patterns, the hard-requirement phrasing, the starter
2303
- * page opt-in, and the checker script opt-in.
2304
- *
2305
- * Malformed configs — empty / whitespace-only or absolute
2306
- * `diagramsPath`, empty `bundlePathPatterns`, empty /
2307
- * whitespace-only pattern entry — fail the build at synth time via
2308
- * `validateWorkflowDiagramsConfig`.
2309
- *
2310
- * @see ./bundles/workflow-diagrams.ts#resolveWorkflowDiagrams
2311
- * @see ./bundles/workflow-diagrams.ts#validateWorkflowDiagramsConfig
2312
- * @see ./bundles/workflow-diagrams.ts#renderWorkflowDiagramsRuleContent
2313
- */
2314
- interface WorkflowDiagramsConfig {
2315
- /**
2316
- * Master switch for the workflow-diagrams convention. When `false`,
2317
- * the base bundle renders a short stub stating the project does not
2318
- * enforce the convention; phased-agent bundles skip the
2319
- * per-workflow "Workflow Diagram" injection and the optional helper
2320
- * script / starter page are not emitted even if their `emit*`
2321
- * flags are true.
2322
- *
2323
- * Defaults to `true` — the convention is on by default.
2324
- */
2325
- readonly enabled?: boolean;
2326
- /**
2327
- * Repo-relative path to the single workflow-diagrams page. The
2328
- * rendered rule cites this path as the on-disk home of every
2329
- * Mermaid diagram; the checker script uses it as the sentinel path
2330
- * that must appear in a change set when any bundle file is
2331
- * touched.
2332
- *
2333
- * Must be a non-empty relative path (no leading `/`).
2334
- *
2335
- * Defaults to `docs/src/content/docs/agents/workflows.md`, which
2336
- * matches the monorepo-wide singleton `/docs` Starlight site every
2337
- * configulator-managed repo ships.
2338
- */
2339
- readonly diagramsPath?: string;
2340
- /**
2341
- * Path patterns (bash-style globs) that identify "bundle files" —
2342
- * the source files whose edits require the workflow-diagrams page
2343
- * to be touched in the same change set. Rendered verbatim into
2344
- * the rule body as a bullet list and emitted into the checker
2345
- * script when `emitChecker: true`.
2346
- *
2347
- * Must be a non-empty array of non-empty strings.
2348
- *
2349
- * Defaults to the configulator-wide set covering in-tree bundle
2350
- * source files, `.claude/agents/**.md` agent prompts, and
2351
- * `.claude/skills/**.md` skill prompts.
2352
- */
2353
- readonly bundlePathPatterns?: ReadonlyArray<string>;
2354
- /**
2355
- * Whether the convention emits a minimal starter diagrams page to
2356
- * disk at `<diagramsPath>`. The starter carries the expected
2357
- * structure (master diagram placeholder, one example agent section,
2358
- * legend) so consumers adopting the convention on a green-field
2359
- * repo have a working template to extend.
2360
- *
2361
- * Disabled by default because the page is hand-authored — an
2362
- * emitted stub would conflict with existing content on repos
2363
- * adopting the convention late.
2364
- */
2365
- readonly emitStarterDiagram?: boolean;
2366
- /**
2367
- * Whether the convention emits the
2368
- * `.claude/procedures/check-workflow-diagrams.sh` helper to disk.
2369
- * The script walks a newline-separated list of changed files (from
2370
- * stdin or positional arguments) and fails non-zero when any file
2371
- * matches a bundle-path pattern but `<diagramsPath>` is not also
2372
- * in the list.
2373
- *
2374
- * Disabled by default — the helper is opt-in for repos that want a
2375
- * hard CI gate or pre-commit hook. Consumers that prefer to
2376
- * enforce the rule via review discipline alone can leave it off.
2377
- */
2378
- readonly emitChecker?: boolean;
2379
- /**
2380
- * Whether the rendered rule body phrases the diagram update as a
2381
- * **hard requirement** (`MUST`) or a **strong recommendation**
2382
- * (`SHOULD`). Defaults to `true` — the hard-requirement phrasing
2383
- * matches the "enforced via CI" posture the convention is
2384
- * designed for. Consumers that treat diagrams as aspirational can
2385
- * soften the phrasing by setting this to `false`.
2386
- */
2387
- readonly requireDiagramUpdate?: boolean;
2388
- }
2389
2285
  /*******************************************************************************
2390
2286
  *
2391
2287
  * Issue Templates Config
@@ -3077,40 +2973,6 @@ interface AgentConfigOptions {
3077
2973
  * @see ./bundles/skill-evals.ts#renderSkillEvalsRuleContent
3078
2974
  */
3079
2975
  readonly skillEvals?: SkillEvalsConfig;
3080
- /**
3081
- * Workflow-diagrams convention consumed by the `base` bundle and
3082
- * every phased-agent bundle. Documents the single hand-authored
3083
- * Mermaid-based diagrams page that visualises every agent's phase
3084
- * graph and every cross-agent handoff, and enforces the
3085
- * diagram-touched-when-bundle-touched rule: a change set that
3086
- * modifies a bundle's phase graph must also update the matching
3087
- * section in the diagrams page.
3088
- *
3089
- * When the whole config is omitted, the convention ships
3090
- * **enabled** with the default diagrams path
3091
- * (`docs/src/content/docs/agents/workflows.md`), the default
3092
- * bundle-path patterns, the hard-requirement phrasing, and both
3093
- * the starter page and the checker script opt-in.
3094
- *
3095
- * Supply `enabled: false` to disable the convention entirely,
3096
- * `diagramsPath` to move the page, `bundlePathPatterns` to
3097
- * replace the default pattern list, `emitStarterDiagram: true`
3098
- * to seed a minimal starter page on disk, `emitChecker: true` to
3099
- * ship the `.claude/procedures/check-workflow-diagrams.sh`
3100
- * helper, or `requireDiagramUpdate: false` to soften the rule
3101
- * phrasing from MUST to SHOULD.
3102
- *
3103
- * Malformed configs — empty / whitespace-only or absolute
3104
- * `diagramsPath`, empty `bundlePathPatterns`, empty /
3105
- * whitespace-only pattern entry — fail the build at synth time
3106
- * via `validateWorkflowDiagramsConfig`.
3107
- *
3108
- * @see WorkflowDiagramsConfig
3109
- * @see ./bundles/workflow-diagrams.ts#resolveWorkflowDiagrams
3110
- * @see ./bundles/workflow-diagrams.ts#validateWorkflowDiagramsConfig
3111
- * @see ./bundles/workflow-diagrams.ts#renderWorkflowDiagramsRuleContent
3112
- */
3113
- readonly workflowDiagrams?: WorkflowDiagramsConfig;
3114
2976
  /**
3115
2977
  * Issue-templates convention consumed by the `base` bundle and
3116
2978
  * every phased-agent bundle that files downstream issues.
@@ -5197,179 +5059,6 @@ declare function renderSkillEvalsBundleHook(se: ResolvedSkillEvals, skillLabel:
5197
5059
  */
5198
5060
  declare function renderSkillEvalsRunnerScript(se: ResolvedSkillEvals): string;
5199
5061
 
5200
- /**
5201
- * Default master switch for the workflow-diagrams convention. When no
5202
- * config is supplied the convention ships **enabled** so every
5203
- * configulator-consuming repo carries the "diagram-touched-when-bundle-
5204
- * touched" rule in its rendered `CLAUDE.md`.
5205
- *
5206
- * @see WorkflowDiagramsConfig
5207
- */
5208
- declare const DEFAULT_WORKFLOW_DIAGRAMS_ENABLED = true;
5209
- /**
5210
- * Default repo-relative path for the workflow-diagrams page. Matches
5211
- * the singleton `/docs` site layout the monorepo contract assumes: a
5212
- * single Starlight docs site at `/docs` with sub-project agent pages
5213
- * under `docs/src/content/docs/agents/`.
5214
- *
5215
- * The file is never generated by configulator (the convention is
5216
- * explicit: diagrams are hand-authored for readability). Consumers
5217
- * opt into the starter stub via `emitStarterDiagram: true`.
5218
- *
5219
- * @see WorkflowDiagramsConfig
5220
- */
5221
- declare const DEFAULT_WORKFLOW_DIAGRAMS_PATH = "docs/src/content/docs/agents/workflows.md";
5222
- /**
5223
- * Default list of glob patterns that identify "bundle files" — the
5224
- * source files whose edits require the workflow-diagrams page to be
5225
- * touched in the same change set.
5226
- *
5227
- * The defaults cover the two canonical locations bundle-like content
5228
- * lives in a configulator-consuming repo:
5229
- *
5230
- * - `packages/@codedrifters/configulator/src/agent/bundles/**.ts` —
5231
- * the bundle authoring sites inside configulator itself.
5232
- * - `.claude/agents/**.md` / `.claude/skills/**` — agent and skill
5233
- * prompts in consuming repos that don't re-export configulator
5234
- * bundles.
5235
- *
5236
- * Consumers can replace the list outright via `bundlePathPatterns`
5237
- * when their agent sources live elsewhere (e.g. a monorepo that keeps
5238
- * agents under `tools/agents/`).
5239
- *
5240
- * @see WorkflowDiagramsConfig
5241
- */
5242
- declare const DEFAULT_WORKFLOW_DIAGRAMS_BUNDLE_PATH_PATTERNS: ReadonlyArray<string>;
5243
- /**
5244
- * Default for whether the convention emits a starter workflow-diagrams
5245
- * page to disk at `<diagramsPath>`. Disabled by default because the
5246
- * page is hand-authored — an emitted stub would conflict with
5247
- * existing content on repos adopting the convention late.
5248
- *
5249
- * @see WorkflowDiagramsConfig
5250
- */
5251
- declare const DEFAULT_WORKFLOW_DIAGRAMS_EMIT_STARTER = false;
5252
- /**
5253
- * Default for whether the convention emits the
5254
- * `.claude/procedures/check-workflow-diagrams.sh` checker script. The
5255
- * script walks the staged / changed-file set and fails when a bundle
5256
- * file is touched without the diagrams page being touched too.
5257
- *
5258
- * Disabled by default because many consumers prefer to enforce the
5259
- * rule via review discipline and the rendered documentation alone;
5260
- * the script is opt-in for repos that want a hard CI gate or
5261
- * pre-commit hook.
5262
- *
5263
- * @see WorkflowDiagramsConfig
5264
- */
5265
- declare const DEFAULT_WORKFLOW_DIAGRAMS_EMIT_CHECKER = false;
5266
- /**
5267
- * Default for whether the rendered rule body asserts the diagram
5268
- * update as a **hard requirement** vs. a **strong recommendation**.
5269
- * Defaults to `true` — the whole point of the convention is that
5270
- * diagrams stay in sync, so the hard-requirement phrasing is the
5271
- * correct default. Consumers that treat diagrams as aspirational can
5272
- * soften the phrasing by setting this to `false`.
5273
- *
5274
- * @see WorkflowDiagramsConfig
5275
- */
5276
- declare const DEFAULT_WORKFLOW_DIAGRAMS_REQUIRE_UPDATE = true;
5277
- /**
5278
- * Fully-resolved workflow-diagrams settings. Every field is defaulted
5279
- * so downstream renderers can reason about a single canonical shape.
5280
- */
5281
- interface ResolvedWorkflowDiagrams {
5282
- readonly enabled: boolean;
5283
- readonly diagramsPath: string;
5284
- readonly bundlePathPatterns: ReadonlyArray<string>;
5285
- readonly emitStarterDiagram: boolean;
5286
- readonly emitChecker: boolean;
5287
- readonly requireDiagramUpdate: boolean;
5288
- }
5289
- /**
5290
- * Resolve a (possibly absent) `WorkflowDiagramsConfig` into a
5291
- * canonical `ResolvedWorkflowDiagrams` with every field filled in.
5292
- * Unset fields cascade from their documented defaults.
5293
- *
5294
- * Malformed configs — empty / whitespace-only or absolute
5295
- * `diagramsPath`, empty `bundlePathPatterns`, empty /
5296
- * whitespace-only path entry — throw a descriptive `Error`.
5297
- */
5298
- declare function resolveWorkflowDiagrams(config?: WorkflowDiagramsConfig): ResolvedWorkflowDiagrams;
5299
- /**
5300
- * Synth-time validation hook. Throws a descriptive `Error` when the
5301
- * supplied `WorkflowDiagramsConfig` is malformed. Called by
5302
- * `AgentConfig.preSynthesize` before any rendering so a misconfigured
5303
- * convention fails the build instead of silently shipping broken
5304
- * workflow-diagrams guidance. Returns the resolved config unchanged
5305
- * so callers can write
5306
- * `const wd = validateWorkflowDiagramsConfig(config)` in one line.
5307
- *
5308
- * Malformed cases rejected here:
5309
- *
5310
- * - `diagramsPath` empty, whitespace-only, or absolute.
5311
- * - `bundlePathPatterns` not an array, empty, or contains an empty /
5312
- * whitespace-only entry.
5313
- */
5314
- declare function validateWorkflowDiagramsConfig(config?: WorkflowDiagramsConfig): ResolvedWorkflowDiagrams;
5315
- /**
5316
- * Render the full body for the `workflow-diagrams-convention` rule
5317
- * shipped by the `base` bundle. The rule documents:
5318
- *
5319
- * - Why the convention exists (diagram / prose drift).
5320
- * - The on-disk contract — a single Mermaid-based page at
5321
- * `<diagramsPath>` with one diagram per agent + a master
5322
- * cross-agent diagram.
5323
- * - The **diagram-touched-when-bundle-touched** rule, phrased as a
5324
- * hard requirement or a strong recommendation per
5325
- * `requireDiagramUpdate`.
5326
- * - The set of paths the rule applies to.
5327
- * - The optional checker script (cross-referenced only when emitted).
5328
- *
5329
- * When the convention is disabled, the rule renders a short stub.
5330
- */
5331
- declare function renderWorkflowDiagramsRuleContent(wd: ResolvedWorkflowDiagrams): string;
5332
- /**
5333
- * Render the short workflow-diagrams hook section injected into a
5334
- * phased-agent bundle's workflow rule. The section cites the full
5335
- * contract documented in the base bundle's
5336
- * `workflow-diagrams-convention` rule so individual bundles stay DRY.
5337
- *
5338
- * When the convention is disabled, the function returns an empty
5339
- * string so callers can no-op their append path.
5340
- */
5341
- declare function renderWorkflowDiagramsBundleHook(wd: ResolvedWorkflowDiagrams, bundleLabel: string): string;
5342
- /**
5343
- * Render a minimal starter workflow-diagrams page — a top-level
5344
- * heading, the master-diagram placeholder, and a single example
5345
- * agent section. Exported so `AgentConfig` can emit it to disk when
5346
- * the consumer opts in via `emitStarterDiagram: true`.
5347
- *
5348
- * The starter is deliberately sparse: it documents the expected
5349
- * structure without committing the consumer to a particular agent
5350
- * list. Repos that already maintain a hand-authored diagrams page
5351
- * should leave `emitStarterDiagram` off — the emission would
5352
- * overwrite their content.
5353
- */
5354
- declare function renderWorkflowDiagramsStarterPage(_wd: ResolvedWorkflowDiagrams): string;
5355
- /**
5356
- * Render the `.claude/procedures/check-workflow-diagrams.sh` helper
5357
- * script. Exported so `AgentConfig` can register it as an
5358
- * `AgentProcedure` when the consumer opts in via `emitChecker: true`.
5359
- *
5360
- * The script accepts the list of changed files as either:
5361
- *
5362
- * 1. Positional arguments (one file per arg).
5363
- * 2. Newline-separated entries on stdin (when no args supplied) —
5364
- * pipe `git diff --name-only` directly into it.
5365
- *
5366
- * It fails non-zero when any changed file matches a bundle-path
5367
- * pattern and the configured diagrams path is not also in the list.
5368
- * It exits `0` when no bundle files were touched or when the
5369
- * diagrams page was touched alongside them.
5370
- */
5371
- declare function renderWorkflowDiagramsCheckerScript(wd: ResolvedWorkflowDiagrams): string;
5372
-
5373
5062
  /**
5374
5063
  * Build the requirements-analyst bundle with the supplied resolved
5375
5064
  * paths.
@@ -6750,6 +6439,556 @@ declare const DEFAULT_SAMPLE_COMPILER_OPTIONS: ts.CompilerOptions;
6750
6439
  */
6751
6440
  declare function compileFencedSamples(options?: CompileFencedSamplesOptions): Array<SampleCompilationFailure>;
6752
6441
 
6442
+ /**
6443
+ * Schema definitions for the docs-sync scan-phase audit report.
6444
+ *
6445
+ * The report is the durable output of Phase 1 (Scan) of the docs-sync
6446
+ * pipeline (parent epic #448). Phase 1 walks the repo, runs every
6447
+ * registered drift check, and persists a single combined report to
6448
+ * `.claude/state/docs-sync/<N>-audit.json` (where `<N>` is the
6449
+ * tracking-issue number). Phase 2 (Fix) reads the persisted report
6450
+ * and applies mechanical fixes — the two phases never share an
6451
+ * in-memory handle, so the JSON shape on disk is the contract
6452
+ * between them.
6453
+ *
6454
+ * #518 ships the **schema and the orchestrator skeleton only**. The
6455
+ * actual drift checks (API/TSDoc/reference, link, fenced-sample) are
6456
+ * wired in by children #519 and #520 by passing additional
6457
+ * `AuditCheckRunner` instances to {@link runScan}. An empty
6458
+ * runner list is the supported scaffold-time configuration and
6459
+ * produces a schema-compliant report with empty findings in every
6460
+ * category.
6461
+ *
6462
+ * The schema is intentionally **keyed by drift-check category** at
6463
+ * the top level (`apiDiff`, `tsdocCoverage`, `referenceMismatches`,
6464
+ * `linkFailures`, `sampleFailures`) so consumers can render or
6465
+ * filter by category without re-grouping a flat list. Each
6466
+ * category-keyed array carries category-specific finding shapes,
6467
+ * and a flat `findings` array re-aggregates the same records with
6468
+ * `category` and `severity` fields attached so the report doubles
6469
+ * as a backlog source for downstream tooling.
6470
+ */
6471
+ /**
6472
+ * Drift-check categories the docs-sync scan phase can produce
6473
+ * findings in. Exhaustive — adding a new category here is a schema
6474
+ * change that requires bumping {@link DOCS_SYNC_AUDIT_SCHEMA_VERSION}
6475
+ * and updating every consumer that switches on the literal.
6476
+ */
6477
+ declare const AuditCategory: {
6478
+ /**
6479
+ * Findings produced by the public-API diff check that surfaces
6480
+ * added, renamed, or removed exports between the current branch
6481
+ * and the recorded baseline. Wired in by child issue #519.
6482
+ */
6483
+ readonly ApiDiff: "apiDiff";
6484
+ /**
6485
+ * Findings produced by the TSDoc-coverage check that flags public
6486
+ * exports without a one-sentence summary. Wired in by child issue
6487
+ * #519.
6488
+ */
6489
+ readonly TsdocCoverage: "tsdocCoverage";
6490
+ /**
6491
+ * Findings produced by the doc-reference cross-index check that
6492
+ * flags inline-code symbol mentions whose target is missing or
6493
+ * has changed. Wired in by child issue #519.
6494
+ */
6495
+ readonly ReferenceMismatches: "referenceMismatches";
6496
+ /**
6497
+ * Findings produced by the link-integrity check (internal via
6498
+ * `astro check`, external via `lychee`). Wired in by child issue
6499
+ * #520.
6500
+ */
6501
+ readonly LinkFailures: "linkFailures";
6502
+ /**
6503
+ * Findings produced by the fenced-sample compilation check that
6504
+ * flags ` ```ts ` / ` ```typescript ` / ` ```tsx ` blocks in the
6505
+ * docs that fail `tsc`. Wired in by child issue #520.
6506
+ */
6507
+ readonly SampleFailures: "sampleFailures";
6508
+ };
6509
+ /**
6510
+ * String-literal type matching the values of {@link AuditCategory}.
6511
+ */
6512
+ type AuditCategory = (typeof AuditCategory)[keyof typeof AuditCategory];
6513
+ /**
6514
+ * Severity ladder applied to every finding before persistence. The
6515
+ * ladder mirrors the parent epic's behavior-on-drift contract —
6516
+ * mechanical fixes auto-apply, advisory findings post a non-blocking
6517
+ * note, blocking findings hand off to `pr-reviewer` via
6518
+ * `review:human-required`.
6519
+ */
6520
+ declare const AuditSeverity: {
6521
+ /**
6522
+ * The finding has a deterministic mechanical fix that the Phase 2
6523
+ * (Fix) agent will auto-apply (TSDoc stubs, dead-link updates,
6524
+ * registry sync, etc.).
6525
+ */
6526
+ readonly Mechanical: "mechanical";
6527
+ /**
6528
+ * The finding deserves human attention but does not block the PR.
6529
+ * Surfaced as a non-blocking note on the sticky `## Docs sync`
6530
+ * comment.
6531
+ */
6532
+ readonly Advisory: "advisory";
6533
+ /**
6534
+ * The finding blocks the PR. Per the parent epic this is reserved
6535
+ * for the two narrow cases of confirmed broken external links and
6536
+ * fenced TS samples that fail to compile.
6537
+ */
6538
+ readonly Blocking: "blocking";
6539
+ };
6540
+ /**
6541
+ * String-literal type matching the values of {@link AuditSeverity}.
6542
+ */
6543
+ type AuditSeverity = (typeof AuditSeverity)[keyof typeof AuditSeverity];
6544
+ /**
6545
+ * Invocation mode of the scan phase. Determines how downstream
6546
+ * tooling treats the report — `pr` reports run against a single
6547
+ * branch and feed `pr-reviewer`; `audit` reports walk the whole
6548
+ * repo and feed the prioritized `docs:write` backlog.
6549
+ */
6550
+ declare const AuditMode: {
6551
+ readonly Pr: "pr";
6552
+ readonly Audit: "audit";
6553
+ };
6554
+ /**
6555
+ * String-literal type matching the values of {@link AuditMode}.
6556
+ */
6557
+ type AuditMode = (typeof AuditMode)[keyof typeof AuditMode];
6558
+ /**
6559
+ * File-and-line location attached to most finding shapes. The
6560
+ * `file` field is always a path relative to the repo root so reports
6561
+ * are portable across machines; absolute paths must be normalized
6562
+ * before they reach the report.
6563
+ */
6564
+ interface AuditLocation {
6565
+ /**
6566
+ * Path relative to {@link AuditReport.repoRoot}. Empty string is
6567
+ * permitted for findings that have no associated file (e.g. an
6568
+ * `apiDiff` removed-export finding that lost its source location).
6569
+ */
6570
+ readonly file: string;
6571
+ /**
6572
+ * 1-indexed line number when known. `0` means "line is not known"
6573
+ * — downstream consumers must treat `0` as missing rather than as
6574
+ * the literal first line.
6575
+ */
6576
+ readonly line: number;
6577
+ }
6578
+ /**
6579
+ * Common fields every finding shape carries. The category-specific
6580
+ * record types below extend this interface with additional fields.
6581
+ */
6582
+ interface AuditFindingBase {
6583
+ /**
6584
+ * Drift-check category that produced the finding. Mirrors the key
6585
+ * on the {@link AuditReport} that the finding is filed under.
6586
+ */
6587
+ readonly category: AuditCategory;
6588
+ /**
6589
+ * Severity classification per the {@link AuditSeverity} ladder.
6590
+ */
6591
+ readonly severity: AuditSeverity;
6592
+ /**
6593
+ * Source location the finding is anchored at. Empty location is
6594
+ * tolerated for findings with no concrete anchor.
6595
+ */
6596
+ readonly location: AuditLocation;
6597
+ /**
6598
+ * Stable subject identifier. For symbol findings this is the
6599
+ * exported symbol name; for link findings the URL; for sample
6600
+ * findings the docPath plus fence index. Used by Phase 2 to
6601
+ * deduplicate findings across runs.
6602
+ */
6603
+ readonly subject: string;
6604
+ /**
6605
+ * One-sentence human-readable description of the finding.
6606
+ * Phase 2 surfaces this directly in the sticky PR comment, so
6607
+ * keep it short and self-contained — no markdown links to
6608
+ * external context, and never includes generated prose over the
6609
+ * 100-word stub budget.
6610
+ */
6611
+ readonly details: string;
6612
+ /**
6613
+ * Optional hint for the Phase 2 fix agent. When present and the
6614
+ * severity is `mechanical`, Phase 2 may use this string to
6615
+ * compute the auto-applied edit. Free-form; downstream consumers
6616
+ * should treat unknown hints as no-op.
6617
+ */
6618
+ readonly fixHint?: string;
6619
+ }
6620
+ /**
6621
+ * Finding produced by the public-API diff check. Wired in by #519.
6622
+ */
6623
+ interface ApiDiffFinding extends AuditFindingBase {
6624
+ readonly category: typeof AuditCategory.ApiDiff;
6625
+ /**
6626
+ * Kind of API change observed. The literal `added` covers a new
6627
+ * export; `removed` covers a deletion; `changed` covers a
6628
+ * signature change that does not rename or remove the symbol.
6629
+ */
6630
+ readonly change: "added" | "removed" | "changed";
6631
+ /**
6632
+ * Public name of the symbol whose surface changed.
6633
+ */
6634
+ readonly symbol: string;
6635
+ }
6636
+ /**
6637
+ * Finding produced by the TSDoc-coverage check. Wired in by #519.
6638
+ */
6639
+ interface TsdocCoverageFinding extends AuditFindingBase {
6640
+ readonly category: typeof AuditCategory.TsdocCoverage;
6641
+ /**
6642
+ * Public name of the symbol that is missing or has thin TSDoc.
6643
+ */
6644
+ readonly symbol: string;
6645
+ /**
6646
+ * Coverage shortfall the finding reports. `missing-summary`
6647
+ * means no TSDoc at all; `thin-summary` means the summary exists
6648
+ * but is shorter than the configured threshold; `missing-params`
6649
+ * / `missing-returns` mean the signature has parameters or a
6650
+ * return value with no matching block tag.
6651
+ */
6652
+ readonly shortfall: "missing-summary" | "thin-summary" | "missing-params" | "missing-returns";
6653
+ }
6654
+ /**
6655
+ * Finding produced by the doc-reference cross-index check. Wired in
6656
+ * by #519.
6657
+ */
6658
+ interface ReferenceMismatchFinding extends AuditFindingBase {
6659
+ readonly category: typeof AuditCategory.ReferenceMismatches;
6660
+ /**
6661
+ * Inline-code symbol referenced in the markdown source.
6662
+ */
6663
+ readonly symbol: string;
6664
+ /**
6665
+ * Why the reference is flagged. `unknown-symbol` means the
6666
+ * symbol does not appear in the supplied known-symbols set;
6667
+ * `signature-changed` means the symbol still resolves but its
6668
+ * type signature differs from the cached snapshot.
6669
+ */
6670
+ readonly mismatch: "unknown-symbol" | "signature-changed";
6671
+ }
6672
+ /**
6673
+ * Finding produced by the link-integrity check. Wired in by #520.
6674
+ */
6675
+ interface LinkFailureFinding extends AuditFindingBase {
6676
+ readonly category: typeof AuditCategory.LinkFailures;
6677
+ /**
6678
+ * URL or relative path that failed integrity checks.
6679
+ */
6680
+ readonly url: string;
6681
+ /**
6682
+ * Whether the link is internal (resolved by `astro check`) or
6683
+ * external (resolved by `lychee`).
6684
+ */
6685
+ readonly kind: "internal" | "external";
6686
+ /**
6687
+ * Short tool-supplied diagnostic explaining the failure.
6688
+ */
6689
+ readonly reason: string;
6690
+ }
6691
+ /**
6692
+ * Finding produced by the fenced-sample compilation check. Wired in
6693
+ * by #520.
6694
+ */
6695
+ interface SampleFailureFinding extends AuditFindingBase {
6696
+ readonly category: typeof AuditCategory.SampleFailures;
6697
+ /**
6698
+ * 0-indexed position of the fenced block within the markdown file.
6699
+ */
6700
+ readonly fenceIndex: number;
6701
+ /**
6702
+ * Language tag the sample carried (e.g. `ts`, `typescript`,
6703
+ * `tsx`, `typescriptreact`).
6704
+ */
6705
+ readonly lang: string;
6706
+ /**
6707
+ * Compiler diagnostics produced by `tsc` against the sample.
6708
+ */
6709
+ readonly diagnostics: ReadonlyArray<string>;
6710
+ }
6711
+ /**
6712
+ * Discriminated union of every category-specific finding shape.
6713
+ */
6714
+ type AuditFinding = ApiDiffFinding | TsdocCoverageFinding | ReferenceMismatchFinding | LinkFailureFinding | SampleFailureFinding;
6715
+ /**
6716
+ * Schema version embedded on every persisted audit report. Bump on
6717
+ * any breaking change to the report shape so downstream consumers
6718
+ * can refuse incompatible files rather than mis-parsing them.
6719
+ *
6720
+ * Versioning is **integer-monotonic**: the producer of a v2 report
6721
+ * is responsible for keeping the v1 fields parseable when
6722
+ * possible, but a v1 reader must reject a v2 report it does not
6723
+ * understand.
6724
+ */
6725
+ declare const DOCS_SYNC_AUDIT_SCHEMA_VERSION = 1;
6726
+ /**
6727
+ * Top-level audit-report shape persisted to
6728
+ * `.claude/state/docs-sync/<N>-audit.json`. The category-keyed
6729
+ * arrays are the durable surface; the flat `findings` array is a
6730
+ * convenience aggregation of the same records.
6731
+ */
6732
+ interface AuditReport {
6733
+ /**
6734
+ * Schema version embedded on every persisted report. Always
6735
+ * equal to {@link DOCS_SYNC_AUDIT_SCHEMA_VERSION} at write time.
6736
+ */
6737
+ readonly schemaVersion: number;
6738
+ /**
6739
+ * Tracking-issue number the scan ran for. Determines the
6740
+ * filename when persisted (`<issueNumber>-audit.json`).
6741
+ */
6742
+ readonly issueNumber: number;
6743
+ /**
6744
+ * Invocation mode — `pr` for diff-scoped runs invoked through
6745
+ * `/docs-sync-pr`, `audit` for full-repo runs invoked through
6746
+ * `/docs-sync-audit`.
6747
+ */
6748
+ readonly mode: AuditMode;
6749
+ /**
6750
+ * ISO 8601 UTC timestamp the scan completed at. Always written
6751
+ * with `Z` suffix; consumers parse with `Date(...)`.
6752
+ */
6753
+ readonly generatedAt: string;
6754
+ /**
6755
+ * Absolute path to the repository root the scan ran against.
6756
+ * Persisted so a downstream consumer reading the report on a
6757
+ * different checkout can rewrite paths relative to its own
6758
+ * root.
6759
+ */
6760
+ readonly repoRoot: string;
6761
+ /**
6762
+ * Optional free-form scope label attached at the issue level
6763
+ * (e.g. `pr:feat/518-foo`, `audit:packages/configulator`).
6764
+ * Empty string when no scope was supplied.
6765
+ */
6766
+ readonly scope: string;
6767
+ /**
6768
+ * Findings grouped by drift-check category. Every category key
6769
+ * is always present and always an array — empty arrays are
6770
+ * persisted explicitly so consumers never have to test for
6771
+ * presence.
6772
+ */
6773
+ readonly categories: {
6774
+ readonly apiDiff: ReadonlyArray<ApiDiffFinding>;
6775
+ readonly tsdocCoverage: ReadonlyArray<TsdocCoverageFinding>;
6776
+ readonly referenceMismatches: ReadonlyArray<ReferenceMismatchFinding>;
6777
+ readonly linkFailures: ReadonlyArray<LinkFailureFinding>;
6778
+ readonly sampleFailures: ReadonlyArray<SampleFailureFinding>;
6779
+ };
6780
+ /**
6781
+ * Flat re-aggregation of every category-keyed finding into a
6782
+ * single deterministically-ordered array. Sorted by `severity`
6783
+ * (`blocking` first, then `advisory`, then `mechanical`), then
6784
+ * `category` (alphabetical), then `location.file`,
6785
+ * `location.line`, `subject`. Provided so consumers that don't
6786
+ * need the category grouping can iterate one array and see the
6787
+ * merge-blocking findings at the top.
6788
+ */
6789
+ readonly findings: ReadonlyArray<AuditFinding>;
6790
+ }
6791
+ /**
6792
+ * JSON-Schema-shaped descriptor for {@link AuditReport}. Returned by
6793
+ * {@link auditReportJsonSchema} so downstream tooling (e.g. ajv)
6794
+ * can validate persisted reports without re-importing the TS
6795
+ * types. The shape is hand-authored and deliberately permissive on
6796
+ * forward-compatible additions (extra category keys are forbidden;
6797
+ * extra finding fields are permitted).
6798
+ *
6799
+ * Returned as a plain JSON-shaped record — callers that want to
6800
+ * feed it into ajv or another validator pass it through directly.
6801
+ */
6802
+ declare function auditReportJsonSchema(): Record<string, unknown>;
6803
+
6804
+ /**
6805
+ * Default subdirectory beneath the repo root where audit reports are
6806
+ * persisted. Mirrors the path declared on issue #518's acceptance
6807
+ * criteria: `.claude/state/docs-sync/<N>-audit.json`.
6808
+ */
6809
+ declare const DEFAULT_AUDIT_REPORT_DIR = ".claude/state/docs-sync";
6810
+ /**
6811
+ * Stable iteration order for category keys. Matches the order they
6812
+ * appear in the persisted report and the order they ran during the
6813
+ * scan (API surface diff first, then TSDoc, then references, then
6814
+ * the docs-only checks). The order is part of the contract — a
6815
+ * consumer that walks `Object.keys(report.categories)` sees this
6816
+ * order on every read.
6817
+ */
6818
+ declare const AUDIT_CATEGORY_ORDER: ReadonlyArray<AuditCategory>;
6819
+ /**
6820
+ * One drift-check runner. The scan orchestrator invokes each
6821
+ * runner in registration order, collects the findings, and merges
6822
+ * them into the persisted report. Runners are intentionally
6823
+ * synchronous to keep the scaffold simple — children #519 and
6824
+ * #520 may introduce async runners by adding a parallel
6825
+ * `AsyncAuditCheckRunner` shape if needed.
6826
+ *
6827
+ * Runners are pure functions: given the same context they should
6828
+ * produce the same finding list. The scan orchestrator does not
6829
+ * sandbox them — a runner that mutates the filesystem or shells
6830
+ * out is on its own honor.
6831
+ */
6832
+ interface AuditCheckRunner {
6833
+ /**
6834
+ * Stable name used in diagnostics and logs. Conventionally
6835
+ * matches the category the runner produces findings in (e.g.
6836
+ * `apiDiff`, `tsdocCoverage`).
6837
+ */
6838
+ readonly name: string;
6839
+ /**
6840
+ * Compute the findings for this check. Runners must return
6841
+ * already-validated finding records — the orchestrator does not
6842
+ * post-process category, severity, or location.
6843
+ */
6844
+ run(context: AuditCheckRunnerContext): ReadonlyArray<AuditFinding>;
6845
+ }
6846
+ /**
6847
+ * Context passed to every check runner. Carries the same fields
6848
+ * the orchestrator needs to populate the report header so runners
6849
+ * can consult them when computing their findings (e.g. resolve
6850
+ * relative paths against `repoRoot`).
6851
+ */
6852
+ interface AuditCheckRunnerContext {
6853
+ readonly repoRoot: string;
6854
+ readonly mode: AuditMode;
6855
+ readonly scope: string;
6856
+ readonly issueNumber: number;
6857
+ }
6858
+ /**
6859
+ * Options accepted by {@link runScan}.
6860
+ */
6861
+ interface RunScanOptions {
6862
+ /**
6863
+ * Absolute path to the repository root the scan runs against.
6864
+ * The audit report's `repoRoot` field is set to this value
6865
+ * verbatim — pass an absolute path so consumers reading the
6866
+ * report on a different checkout can rewrite paths reliably.
6867
+ */
6868
+ readonly repoRoot: string;
6869
+ /**
6870
+ * Tracking-issue number the scan ran for. Determines the
6871
+ * persisted filename (`<issueNumber>-audit.json`).
6872
+ */
6873
+ readonly issueNumber: number;
6874
+ /**
6875
+ * Invocation mode — `pr` for diff-scoped runs, `audit` for
6876
+ * full-repo runs.
6877
+ */
6878
+ readonly mode: AuditMode;
6879
+ /**
6880
+ * Optional free-form scope label. Persisted on the report and
6881
+ * forwarded to every runner. Defaults to the empty string.
6882
+ */
6883
+ readonly scope?: string;
6884
+ /**
6885
+ * Drift-check runners to invoke in order. Empty by default —
6886
+ * #518 ships the orchestrator skeleton without any wired
6887
+ * checks; #519 and #520 plug them in.
6888
+ */
6889
+ readonly checks?: ReadonlyArray<AuditCheckRunner>;
6890
+ /**
6891
+ * Override the timestamp embedded on the report. Used in tests
6892
+ * to make output deterministic. Defaults to `new Date()` at
6893
+ * scan start.
6894
+ */
6895
+ readonly now?: Date;
6896
+ /**
6897
+ * When `true`, persist the report to disk under
6898
+ * `<repoRoot>/<reportDir>/<issueNumber>-audit.json`. When
6899
+ * `false` (the default), the report is returned in memory only.
6900
+ *
6901
+ * @default false
6902
+ */
6903
+ readonly persist?: boolean;
6904
+ /**
6905
+ * Override the directory the report is written to (relative to
6906
+ * {@link RunScanOptions.repoRoot}). Defaults to
6907
+ * {@link DEFAULT_AUDIT_REPORT_DIR}.
6908
+ *
6909
+ * @default ".claude/state/docs-sync"
6910
+ */
6911
+ readonly reportDir?: string;
6912
+ }
6913
+ /**
6914
+ * Result returned by {@link runScan}. Always carries the report;
6915
+ * `reportPath` is non-empty only when persistence was requested.
6916
+ */
6917
+ interface RunScanResult {
6918
+ /**
6919
+ * The report produced by the scan. Schema-compliant whether or
6920
+ * not any checks ran — empty `categories` arrays are persisted
6921
+ * explicitly.
6922
+ */
6923
+ readonly report: AuditReport;
6924
+ /**
6925
+ * Absolute path the report was persisted to. Empty string when
6926
+ * `persist` was `false`.
6927
+ */
6928
+ readonly reportPath: string;
6929
+ }
6930
+ /**
6931
+ * Run the docs-sync scan phase. Invokes every registered check
6932
+ * runner in order, merges the findings into a single
6933
+ * schema-compliant {@link AuditReport}, and optionally persists
6934
+ * the report to `<repoRoot>/<reportDir>/<issueNumber>-audit.json`.
6935
+ *
6936
+ * #518 ships this function with an **empty default check list**:
6937
+ * invoking `runScan({ repoRoot, issueNumber, mode: "pr" })`
6938
+ * produces a report whose `findings` and per-category arrays are
6939
+ * all empty. Children #519 and #520 register the real checks by
6940
+ * passing them via the `checks` option.
6941
+ */
6942
+ declare function runScan(options: RunScanOptions): RunScanResult;
6943
+ /**
6944
+ * Compute the final {@link AuditReport} from a flat list of
6945
+ * findings. Group by category, sort each bucket deterministically,
6946
+ * and produce the flat `findings` aggregation in the documented
6947
+ * order. Exported so #519 / #520 can build reports incrementally
6948
+ * without re-running the whole scan.
6949
+ */
6950
+ declare function buildReport(args: {
6951
+ readonly issueNumber: number;
6952
+ readonly mode: AuditMode;
6953
+ readonly scope: string;
6954
+ readonly repoRoot: string;
6955
+ readonly generatedAt: Date;
6956
+ readonly findings: ReadonlyArray<AuditFinding>;
6957
+ }): AuditReport;
6958
+ /**
6959
+ * Persist an {@link AuditReport} to disk. The directory is created
6960
+ * recursively when missing; the file is written atomically via a
6961
+ * temp-file + rename so a partial write never produces a corrupt
6962
+ * report.
6963
+ */
6964
+ declare function persistAuditReport(args: {
6965
+ readonly report: AuditReport;
6966
+ readonly repoRoot: string;
6967
+ readonly reportDir?: string;
6968
+ }): string;
6969
+ /**
6970
+ * Build an empty {@link AuditReport.categories} record with every
6971
+ * key explicitly set to an empty array. Exported so callers that
6972
+ * stub the report shape in tests don't have to repeat the keys.
6973
+ */
6974
+ declare function emptyCategoryBuckets(): {
6975
+ apiDiff: Array<AuditFinding & {
6976
+ category: typeof AuditCategory.ApiDiff;
6977
+ }>;
6978
+ tsdocCoverage: Array<AuditFinding & {
6979
+ category: typeof AuditCategory.TsdocCoverage;
6980
+ }>;
6981
+ referenceMismatches: Array<AuditFinding & {
6982
+ category: typeof AuditCategory.ReferenceMismatches;
6983
+ }>;
6984
+ linkFailures: Array<AuditFinding & {
6985
+ category: typeof AuditCategory.LinkFailures;
6986
+ }>;
6987
+ sampleFailures: Array<AuditFinding & {
6988
+ category: typeof AuditCategory.SampleFailures;
6989
+ }>;
6990
+ };
6991
+
6753
6992
  /**
6754
6993
  * One row in the TSDoc-coverage report — describes a single public
6755
6994
  * symbol exported (transitively) from the package's entry point and
@@ -8768,5 +9007,5 @@ declare const COMPLETE_JOB_ID = "complete";
8768
9007
  */
8769
9008
  declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
8770
9009
 
8771
- export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AGENT_TIER_ROLES, AGENT_TIER_VALUES, AgentConfig, ApiExtractor, AstroConfig, AstroOutput, AstroProject, AwsCdkProject, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, AwsTeardownWorkflow, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, DEFAULT_AC_THRESHOLDS, DEFAULT_AGENT_PATHS, DEFAULT_AGENT_TIERS, DEFAULT_API_EXTRACTOR_CONFIG_FILE, DEFAULT_API_EXTRACTOR_ENTRY_POINT, DEFAULT_API_EXTRACTOR_REPORT_FILENAME, DEFAULT_API_EXTRACTOR_REPORT_FOLDER, DEFAULT_DECOMPOSITION_TEMPLATE, DEFAULT_DELEGATE_TO_PR_REVIEWER, DEFAULT_DISPATCH_MODEL, DEFAULT_DISPATCH_TO_HOUSEKEEPING_RATIO, DEFAULT_HOUSEKEEPING_MODEL, DEFAULT_ISSUE_TEMPLATES_BUNDLE_PATH_PATTERNS, DEFAULT_ISSUE_TEMPLATES_EMIT_CHECKER, DEFAULT_ISSUE_TEMPLATES_EMIT_STARTER, DEFAULT_ISSUE_TEMPLATES_ENABLED, DEFAULT_ISSUE_TEMPLATES_PATH, DEFAULT_ISSUE_TEMPLATES_REQUIRE_REFERENCE, DEFAULT_MERGE_METHOD, DEFAULT_OFF_PEAK_CRON_EXAMPLE, DEFAULT_PARTIAL_UNBLOCK_COMMENT_TEMPLATE, DEFAULT_PRIORITY_LABELS, DEFAULT_PRODUCT_CONTEXT_PATH, DEFAULT_PROGRESS_FILES_ENABLED, DEFAULT_PROGRESS_FILES_FILENAME_PATTERN, DEFAULT_PROGRESS_FILES_FORMAT, DEFAULT_PROGRESS_FILES_STALE_AFTER_HOURS, DEFAULT_PROGRESS_FILES_STATE_DIR, DEFAULT_REQUIRE_LINKED_ISSUE, DEFAULT_REQUIRE_PRODUCT_CONTEXT, DEFAULT_SAMPLE_COMPILER_OPTIONS, DEFAULT_SCHEDULED_TASKS_ROOT, DEFAULT_SCHEDULED_TASK_ENTRIES, DEFAULT_SHARED_EDITING_CONFLICT_STRATEGY, DEFAULT_SHARED_EDITING_EMIT_HELPER, DEFAULT_SHARED_EDITING_ENABLED, DEFAULT_SHARED_EDITING_VERIFY_COMMIT, DEFAULT_SHARED_INDEX_PATHS, DEFAULT_SKILL_EVALS_EMIT_RUNNER, DEFAULT_SKILL_EVALS_ENABLED, DEFAULT_SKILL_EVALS_SKILLS_ROOT, DEFAULT_SOURCES_THRESHOLDS, DEFAULT_STATE_FILE_PATH, DEFAULT_STATUS_LABELS, DEFAULT_TEARDOWN_BRANCH_PATTERNS, DEFAULT_TYPE_LABELS, DEFAULT_UNBLOCK_COMMENT_TEMPLATE, DEFAULT_UNBLOCK_DEPENDENTS_ENABLED, DEFAULT_WORKFLOW_DIAGRAMS_BUNDLE_PATH_PATTERNS, DEFAULT_WORKFLOW_DIAGRAMS_EMIT_CHECKER, DEFAULT_WORKFLOW_DIAGRAMS_EMIT_STARTER, DEFAULT_WORKFLOW_DIAGRAMS_ENABLED, DEFAULT_WORKFLOW_DIAGRAMS_PATH, DEFAULT_WORKFLOW_DIAGRAMS_REQUIRE_UPDATE, JsiiFaker, LAYOUT_ENFORCEMENT, LAYOUT_ROOT_BY_PROJECT_TYPE, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MONOREPO_LAYOUT, MonorepoProject, PREFLIGHT_MERGE_METHOD_VALUES, PROD_DEPLOY_NAME, PROGRESS_FILES_FORMAT_VALUES, PnpmWorkspace, ProjectMetadata, REQUIREMENTS_WRITER_PATHS, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, ResetTask, SCHEDULED_TASK_MODEL_VALUES, SCOPE_CLASS_VALUES, SHARED_EDITING_CONFLICT_STRATEGY_VALUES, STARLIGHT_ROLE, SampleLang, StarlightProject, TestRunner, TsDocCoverageKind, TurboRepo, TurboRepoTask, TypeScriptConfig, TypeScriptProject, UNKNOWN_TYPE_FALLBACK_TIER, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, Vitest, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, agendaBundle, analyzeTsDocCoverage, awsCdkBundle, baseBundle, bcmWriterBundle, buildBaseBundle, buildBcmWriterBundle, buildBuiltInBundles, buildBusinessModelsBundle, buildCheckBlockedProcedure, buildCompanyProfileBundle, buildCustomerProfileBundle, buildDocsSyncBundle, buildIndustryDiscoveryBundle, buildMaintenanceAuditBundle, buildOrchestratorConventionsContent, buildPeopleProfileBundle, buildRegulatoryResearchBundle, buildRequirementsAnalystBundle, buildRequirementsReviewerBundle, buildRequirementsWriterBundle, buildResearchPipelineBundle, buildSoftwareProfileBundle, buildStandardsResearchBundle, buildUnblockDependentsProcedure, businessModelsBundle, checkDocSamplesProcedure, checkLinksProcedure, classifyIssueScope, classifyRun, companyProfileBundle, compileFencedSamples, customerProfileBundle, docsSyncBundle, extractApiProcedure, extractDocReferences, extractFencedSamples, formatLayoutViolation, formatStarlightSingletonViolation, getLatestEligibleVersion, githubWorkflowBundle, industryDiscoveryBundle, jestBundle, maintenanceAuditBundle, meetingAnalysisBundle, orchestratorBundle, peopleProfileBundle, pnpmBundle, prReviewBundle, projenBundle, regulatoryResearchBundle, renderAgentTierCaseStatement, renderAgentTierSection, renderCheckDocSamplesProcedure, renderCheckLinksProcedure, renderCustomDocSectionBlock, renderCustomDocSections, renderExtractApiProcedure, renderFocusSection, renderIssueTemplatesBundleHook, renderIssueTemplatesCheckerScript, renderIssueTemplatesRuleContent, renderIssueTemplatesStarterPage, renderMeetingTypesSection, renderPreflightPrSection, renderPreflightPrShellHelpers, renderPriorityRulesSection, renderProgressFileName, renderProgressFilePath, renderProgressFilesBundleHook, renderProgressFilesRuleContent, renderRunRatioSection, renderRunRatioShellHelpers, renderScheduledTaskSkillFile, renderScheduledTasksSection, renderScopeGateSection, renderScopeGateShellHelpers, renderSharedEditingBundleHook, renderSharedEditingHelperScript, renderSharedEditingRuleContent, renderSkillEvalsBundleHook, renderSkillEvalsRuleContent, renderSkillEvalsRunnerScript, renderSourceTierExamples, renderUnblockDependentsScript, renderUnblockDependentsSection, renderWorkflowDiagramsBundleHook, renderWorkflowDiagramsCheckerScript, renderWorkflowDiagramsRuleContent, renderWorkflowDiagramsStarterPage, requirementsAnalystBundle, requirementsReviewerBundle, requirementsWriterBundle, researchPipelineBundle, resolveAgentPaths, resolveAgentTiers, resolveAstroProjectOutdir, resolveAwsCdkProjectOutdir, resolveIssueTemplates, resolveModelAlias, resolveOrchestratorAssets, resolveOutdirFromPackageName, resolvePreflightPr, resolveProgressFiles, resolveRunRatio, resolveScheduledTasks, resolveScopeGate, resolveSharedEditing, resolveSkillEvals, resolveTemplateVariables, resolveTypeScriptProjectOutdir, resolveUnblockDependents, resolveWorkflowDiagrams, slackBundle, softwareProfileBundle, standardsResearchBundle, turborepoBundle, typescriptBundle, validateAgentTierConfig, validateIssueTemplatesConfig, validateMonorepoLayout, validatePreflightPrConfig, validateProgressFilesConfig, validateRunRatioConfig, validateScheduledTasksConfig, validateScopeGateConfig, validateSharedEditingConfig, validateSkillEvalsConfig, validateStarlightSingleton, validateUnblockDependentsConfig, validateWorkflowDiagramsConfig, vitestBundle };
8772
- export type { AgentConfigOptions, AgentExpansionRules, AgentFeaturesConfig, AgentModel, AgentPathsConfig, AgentPlatform, AgentPlatformOverrides, AgentProcedure, AgentRule, AgentRuleBundle, AgentRuleScope, AgentSkill, AgentSubAgent, AgentSubAgentPlatformOverrides, AgentTier, AgentTierConfig, AgentTierEntry, AnalyzeTsDocCoverageOptions, ApiExtractorOptions, ApiExtractorReportOptions, ApproveMergeUpgradeOptions, AstroConfigOptions, AstroIntegrationSpec, AstroProjectOptions, AwsAccount, AwsCdkProjectOptions, AwsDeploymentTargetOptions, AwsLocalDeploymentConfig, AwsOrganization, AwsRegion, AwsTeardownWorkflowOptions, CiDeploymentConfig, ClassTypeOptions, ClaudeAutoModeConfig, ClaudeHookAction, ClaudeHookEntry, ClaudeHooksConfig, ClaudePermissionsConfig, ClaudeRuleTarget, ClaudeSandboxConfig, ClaudeSettingsConfig, CompileFencedSamplesOptions, CopilotHandoff, CursorHookAction, CursorHooksConfig, CursorSettingsConfig, CustomDocSection, DeployWorkflowOptions, DeploymentMetadata, DocReferenceRecord, ExtractDocReferencesOptions, ExtractFencedSamplesOptions, FencedSampleRecord, FocusArea, FocusAreaMatch, FocusConfig, GitBranch, GitHubBoardMetadata, GitHubProjectMetadata, GitHubSprintMetadata, IDependencyResolver, IssueTemplatesConfig, LabelDefinition, LayoutEnforcement, LayoutViolation, McpServerConfig, McpTransport, MeetingArea, MeetingScope, MeetingType, MeetingTypeKind, MeetingsConfig, MergeMethod, MonorepoLayoutRoot, MonorepoProjectOptions, OrganizationMetadata, PnpmWorkspaceOptions, PreflightMergeMethod, PreflightPrConfig, PriorityRule, ProgressFilesConfig, ProjectMetadataOptions, RemoteCacheOptions, RepositoryMetadata, ResetTaskOptions, ResolvedAgentPaths, ResolvedAgentTier, ResolvedIssueTemplates, ResolvedPreflightPr, ResolvedProgressFiles, ResolvedProjectMetadata, ResolvedRunRatio, ResolvedScheduledTask, ResolvedScheduledTasks, ResolvedScopeGate, ResolvedSharedEditing, ResolvedSkillEvals, ResolvedUnblockDependents, ResolvedWorkflowDiagrams, RunRatioConfig, SampleCompilationFailure, ScheduledTaskEntry, ScheduledTaskModel, ScheduledTaskOverride, ScheduledTasksConfig, ScopeClass, ScopeGateConfig, ScopeGateThresholds, SharedEditingConfig, SkillEvalsConfig, SlackMetadata, SourceTierExamples, StarlightEditLink, StarlightLogo, StarlightProjectOptions, StarlightRole, StarlightSidebarItem, StarlightSingletonViolation, StarlightSocialLink, SyncLabelsOptions, TemplateResolveResult, TsDocCoverageRecord, TurboRepoOptions, TurboRepoTaskOptions, TypeScriptProjectOptions, UnblockDependentsConfig, VersionKey, VitestConfigOptions, VitestOptions, WorkflowDiagramsConfig };
9010
+ export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AGENT_TIER_ROLES, AGENT_TIER_VALUES, AUDIT_CATEGORY_ORDER, AgentConfig, ApiExtractor, AstroConfig, AstroOutput, AstroProject, AuditCategory, AuditMode, AuditSeverity, AwsCdkProject, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, AwsTeardownWorkflow, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, DEFAULT_AC_THRESHOLDS, DEFAULT_AGENT_PATHS, DEFAULT_AGENT_TIERS, DEFAULT_API_EXTRACTOR_CONFIG_FILE, DEFAULT_API_EXTRACTOR_ENTRY_POINT, DEFAULT_API_EXTRACTOR_REPORT_FILENAME, DEFAULT_API_EXTRACTOR_REPORT_FOLDER, DEFAULT_AUDIT_REPORT_DIR, DEFAULT_DECOMPOSITION_TEMPLATE, DEFAULT_DELEGATE_TO_PR_REVIEWER, DEFAULT_DISPATCH_MODEL, DEFAULT_DISPATCH_TO_HOUSEKEEPING_RATIO, DEFAULT_HOUSEKEEPING_MODEL, DEFAULT_ISSUE_TEMPLATES_BUNDLE_PATH_PATTERNS, DEFAULT_ISSUE_TEMPLATES_EMIT_CHECKER, DEFAULT_ISSUE_TEMPLATES_EMIT_STARTER, DEFAULT_ISSUE_TEMPLATES_ENABLED, DEFAULT_ISSUE_TEMPLATES_PATH, DEFAULT_ISSUE_TEMPLATES_REQUIRE_REFERENCE, DEFAULT_MERGE_METHOD, DEFAULT_OFF_PEAK_CRON_EXAMPLE, DEFAULT_PARTIAL_UNBLOCK_COMMENT_TEMPLATE, DEFAULT_PRIORITY_LABELS, DEFAULT_PRODUCT_CONTEXT_PATH, DEFAULT_PROGRESS_FILES_ENABLED, DEFAULT_PROGRESS_FILES_FILENAME_PATTERN, DEFAULT_PROGRESS_FILES_FORMAT, DEFAULT_PROGRESS_FILES_STALE_AFTER_HOURS, DEFAULT_PROGRESS_FILES_STATE_DIR, DEFAULT_REQUIRE_LINKED_ISSUE, DEFAULT_REQUIRE_PRODUCT_CONTEXT, DEFAULT_SAMPLE_COMPILER_OPTIONS, DEFAULT_SCHEDULED_TASKS_ROOT, DEFAULT_SCHEDULED_TASK_ENTRIES, DEFAULT_SHARED_EDITING_CONFLICT_STRATEGY, DEFAULT_SHARED_EDITING_EMIT_HELPER, DEFAULT_SHARED_EDITING_ENABLED, DEFAULT_SHARED_EDITING_VERIFY_COMMIT, DEFAULT_SHARED_INDEX_PATHS, DEFAULT_SKILL_EVALS_EMIT_RUNNER, DEFAULT_SKILL_EVALS_ENABLED, DEFAULT_SKILL_EVALS_SKILLS_ROOT, DEFAULT_SOURCES_THRESHOLDS, DEFAULT_STATE_FILE_PATH, DEFAULT_STATUS_LABELS, DEFAULT_TEARDOWN_BRANCH_PATTERNS, DEFAULT_TYPE_LABELS, DEFAULT_UNBLOCK_COMMENT_TEMPLATE, DEFAULT_UNBLOCK_DEPENDENTS_ENABLED, DOCS_SYNC_AUDIT_SCHEMA_VERSION, JsiiFaker, LAYOUT_ENFORCEMENT, LAYOUT_ROOT_BY_PROJECT_TYPE, MAX_LABEL_DESCRIPTION_LENGTH, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MONOREPO_LAYOUT, MonorepoProject, PREFLIGHT_MERGE_METHOD_VALUES, PROD_DEPLOY_NAME, PROGRESS_FILES_FORMAT_VALUES, PnpmWorkspace, ProjectMetadata, REQUIREMENTS_WRITER_PATHS, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, ResetTask, SCHEDULED_TASK_MODEL_VALUES, SCOPE_CLASS_VALUES, SHARED_EDITING_CONFLICT_STRATEGY_VALUES, STARLIGHT_ROLE, SampleLang, StarlightProject, TestRunner, TsDocCoverageKind, TurboRepo, TurboRepoTask, TypeScriptConfig, TypeScriptProject, UNKNOWN_TYPE_FALLBACK_TIER, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, Vitest, addApproveMergeUpgradeWorkflow, addBuildCompleteJob, addSyncLabelsWorkflow, agendaBundle, analyzeTsDocCoverage, auditReportJsonSchema, awsCdkBundle, baseBundle, bcmWriterBundle, buildBaseBundle, buildBcmWriterBundle, buildBuiltInBundles, buildBusinessModelsBundle, buildCheckBlockedProcedure, buildCompanyProfileBundle, buildCustomerProfileBundle, buildDocsSyncBundle, buildIndustryDiscoveryBundle, buildMaintenanceAuditBundle, buildOrchestratorConventionsContent, buildPeopleProfileBundle, buildRegulatoryResearchBundle, buildReport, buildRequirementsAnalystBundle, buildRequirementsReviewerBundle, buildRequirementsWriterBundle, buildResearchPipelineBundle, buildSoftwareProfileBundle, buildStandardsResearchBundle, buildUnblockDependentsProcedure, businessModelsBundle, checkDocSamplesProcedure, checkLinksProcedure, classifyIssueScope, classifyRun, companyProfileBundle, compileFencedSamples, customerProfileBundle, docsSyncBundle, emptyCategoryBuckets, extractApiProcedure, extractDocReferences, extractFencedSamples, formatLayoutViolation, formatStarlightSingletonViolation, getLatestEligibleVersion, githubWorkflowBundle, industryDiscoveryBundle, jestBundle, maintenanceAuditBundle, meetingAnalysisBundle, orchestratorBundle, peopleProfileBundle, persistAuditReport, pnpmBundle, prReviewBundle, projenBundle, regulatoryResearchBundle, renderAgentTierCaseStatement, renderAgentTierSection, renderCheckDocSamplesProcedure, renderCheckLinksProcedure, renderCustomDocSectionBlock, renderCustomDocSections, renderExtractApiProcedure, renderFocusSection, renderIssueTemplatesBundleHook, renderIssueTemplatesCheckerScript, renderIssueTemplatesRuleContent, renderIssueTemplatesStarterPage, renderMeetingTypesSection, renderPreflightPrSection, renderPreflightPrShellHelpers, renderPriorityRulesSection, renderProgressFileName, renderProgressFilePath, renderProgressFilesBundleHook, renderProgressFilesRuleContent, renderRunRatioSection, renderRunRatioShellHelpers, renderScheduledTaskSkillFile, renderScheduledTasksSection, renderScopeGateSection, renderScopeGateShellHelpers, renderSharedEditingBundleHook, renderSharedEditingHelperScript, renderSharedEditingRuleContent, renderSkillEvalsBundleHook, renderSkillEvalsRuleContent, renderSkillEvalsRunnerScript, renderSourceTierExamples, renderUnblockDependentsScript, renderUnblockDependentsSection, requirementsAnalystBundle, requirementsReviewerBundle, requirementsWriterBundle, researchPipelineBundle, resolveAgentPaths, resolveAgentTiers, resolveAstroProjectOutdir, resolveAwsCdkProjectOutdir, resolveIssueTemplates, resolveModelAlias, resolveOrchestratorAssets, resolveOutdirFromPackageName, resolvePreflightPr, resolveProgressFiles, resolveRunRatio, resolveScheduledTasks, resolveScopeGate, resolveSharedEditing, resolveSkillEvals, resolveTemplateVariables, resolveTypeScriptProjectOutdir, resolveUnblockDependents, runScan, slackBundle, softwareProfileBundle, standardsResearchBundle, turborepoBundle, typescriptBundle, validateAgentTierConfig, validateIssueTemplatesConfig, validateMonorepoLayout, validatePreflightPrConfig, validateProgressFilesConfig, validateRunRatioConfig, validateScheduledTasksConfig, validateScopeGateConfig, validateSharedEditingConfig, validateSkillEvalsConfig, validateStarlightSingleton, validateUnblockDependentsConfig, vitestBundle };
9011
+ export type { AgentConfigOptions, AgentExpansionRules, AgentFeaturesConfig, AgentModel, AgentPathsConfig, AgentPlatform, AgentPlatformOverrides, AgentProcedure, AgentRule, AgentRuleBundle, AgentRuleScope, AgentSkill, AgentSubAgent, AgentSubAgentPlatformOverrides, AgentTier, AgentTierConfig, AgentTierEntry, AnalyzeTsDocCoverageOptions, ApiDiffFinding, ApiExtractorOptions, ApiExtractorReportOptions, ApproveMergeUpgradeOptions, AstroConfigOptions, AstroIntegrationSpec, AstroProjectOptions, AuditCheckRunner, AuditCheckRunnerContext, AuditFinding, AuditFindingBase, AuditLocation, AuditReport, AwsAccount, AwsCdkProjectOptions, AwsDeploymentTargetOptions, AwsLocalDeploymentConfig, AwsOrganization, AwsRegion, AwsTeardownWorkflowOptions, CiDeploymentConfig, ClassTypeOptions, ClaudeAutoModeConfig, ClaudeHookAction, ClaudeHookEntry, ClaudeHooksConfig, ClaudePermissionsConfig, ClaudeRuleTarget, ClaudeSandboxConfig, ClaudeSettingsConfig, CompileFencedSamplesOptions, CopilotHandoff, CursorHookAction, CursorHooksConfig, CursorSettingsConfig, CustomDocSection, DeployWorkflowOptions, DeploymentMetadata, DocReferenceRecord, ExtractDocReferencesOptions, ExtractFencedSamplesOptions, FencedSampleRecord, FocusArea, FocusAreaMatch, FocusConfig, GitBranch, GitHubBoardMetadata, GitHubProjectMetadata, GitHubSprintMetadata, IDependencyResolver, IssueTemplatesConfig, LabelDefinition, LayoutEnforcement, LayoutViolation, LinkFailureFinding, McpServerConfig, McpTransport, MeetingArea, MeetingScope, MeetingType, MeetingTypeKind, MeetingsConfig, MergeMethod, MonorepoLayoutRoot, MonorepoProjectOptions, OrganizationMetadata, PnpmWorkspaceOptions, PreflightMergeMethod, PreflightPrConfig, PriorityRule, ProgressFilesConfig, ProjectMetadataOptions, ReferenceMismatchFinding, RemoteCacheOptions, RepositoryMetadata, ResetTaskOptions, ResolvedAgentPaths, ResolvedAgentTier, ResolvedIssueTemplates, ResolvedPreflightPr, ResolvedProgressFiles, ResolvedProjectMetadata, ResolvedRunRatio, ResolvedScheduledTask, ResolvedScheduledTasks, ResolvedScopeGate, ResolvedSharedEditing, ResolvedSkillEvals, ResolvedUnblockDependents, RunRatioConfig, RunScanOptions, RunScanResult, SampleCompilationFailure, SampleFailureFinding, ScheduledTaskEntry, ScheduledTaskModel, ScheduledTaskOverride, ScheduledTasksConfig, ScopeClass, ScopeGateConfig, ScopeGateThresholds, SharedEditingConfig, SkillEvalsConfig, SlackMetadata, SourceTierExamples, StarlightEditLink, StarlightLogo, StarlightProjectOptions, StarlightRole, StarlightSidebarItem, StarlightSingletonViolation, StarlightSocialLink, SyncLabelsOptions, TemplateResolveResult, TsDocCoverageRecord, TsdocCoverageFinding, TurboRepoOptions, TurboRepoTaskOptions, TypeScriptProjectOptions, UnblockDependentsConfig, VersionKey, VitestConfigOptions, VitestOptions };