@codedrifters/configulator 0.0.407 → 0.0.408
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.mts +2603 -2478
- package/lib/index.d.ts +2604 -2479
- package/lib/index.js +127 -134
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +123 -134
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -223,6 +223,7 @@ __export(index_exports, {
|
|
|
223
223
|
DEFAULT_API_EXTRACTOR_REPORT_FILENAME: () => DEFAULT_API_EXTRACTOR_REPORT_FILENAME,
|
|
224
224
|
DEFAULT_API_EXTRACTOR_REPORT_FOLDER: () => DEFAULT_API_EXTRACTOR_REPORT_FOLDER,
|
|
225
225
|
DEFAULT_AUDIT_REPORT_DIR: () => DEFAULT_AUDIT_REPORT_DIR,
|
|
226
|
+
DEFAULT_BASE_CONVENTIONS: () => DEFAULT_BASE_CONVENTIONS,
|
|
226
227
|
DEFAULT_BUILD_POLICY: () => DEFAULT_BUILD_POLICY,
|
|
227
228
|
DEFAULT_BUNDLE_OVERRIDES: () => DEFAULT_BUNDLE_OVERRIDES,
|
|
228
229
|
DEFAULT_DECOMPOSITION_TEMPLATE: () => DEFAULT_DECOMPOSITION_TEMPLATE,
|
|
@@ -239,6 +240,7 @@ __export(index_exports, {
|
|
|
239
240
|
DEFAULT_ISSUE_TEMPLATES_PATH: () => DEFAULT_ISSUE_TEMPLATES_PATH,
|
|
240
241
|
DEFAULT_ISSUE_TEMPLATES_REQUIRE_REFERENCE: () => DEFAULT_ISSUE_TEMPLATES_REQUIRE_REFERENCE,
|
|
241
242
|
DEFAULT_OFF_PEAK_CRON_EXAMPLE: () => DEFAULT_OFF_PEAK_CRON_EXAMPLE,
|
|
243
|
+
DEFAULT_ORCHESTRATOR_CONVENTIONS: () => DEFAULT_ORCHESTRATOR_CONVENTIONS,
|
|
242
244
|
DEFAULT_PARTIAL_UNBLOCK_COMMENT_TEMPLATE: () => DEFAULT_PARTIAL_UNBLOCK_COMMENT_TEMPLATE,
|
|
243
245
|
DEFAULT_PATHS_EXEMPT_FROM_SIZE: () => DEFAULT_PATHS_EXEMPT_FROM_SIZE,
|
|
244
246
|
DEFAULT_PRIORITY_LABELS: () => DEFAULT_PRIORITY_LABELS,
|
|
@@ -251,6 +253,7 @@ __export(index_exports, {
|
|
|
251
253
|
DEFAULT_REQUIREMENT_CATEGORY_DIRS: () => DEFAULT_REQUIREMENT_CATEGORY_DIRS,
|
|
252
254
|
DEFAULT_REQUIRE_PRODUCT_CONTEXT: () => DEFAULT_REQUIRE_PRODUCT_CONTEXT,
|
|
253
255
|
DEFAULT_RESOLVED_ISSUE_DEFAULTS: () => DEFAULT_RESOLVED_ISSUE_DEFAULTS,
|
|
256
|
+
DEFAULT_RULE_CONVENTIONS: () => DEFAULT_RULE_CONVENTIONS,
|
|
254
257
|
DEFAULT_SAMPLE_COMPILER_OPTIONS: () => DEFAULT_SAMPLE_COMPILER_OPTIONS,
|
|
255
258
|
DEFAULT_SCHEDULED_TASKS_ROOT: () => DEFAULT_SCHEDULED_TASKS_ROOT,
|
|
256
259
|
DEFAULT_SCHEDULED_TASK_ENTRIES: () => DEFAULT_SCHEDULED_TASK_ENTRIES,
|
|
@@ -354,6 +357,7 @@ __export(index_exports, {
|
|
|
354
357
|
buildIndustryDiscoveryBundle: () => buildIndustryDiscoveryBundle,
|
|
355
358
|
buildMaintenanceAuditBundle: () => buildMaintenanceAuditBundle,
|
|
356
359
|
buildMeetingAnalysisBundle: () => buildMeetingAnalysisBundle,
|
|
360
|
+
buildOrchestratorBundle: () => buildOrchestratorBundle,
|
|
357
361
|
buildOrchestratorConventionsContent: () => buildOrchestratorConventionsContent,
|
|
358
362
|
buildPeopleProfileBundle: () => buildPeopleProfileBundle,
|
|
359
363
|
buildPrReviewBundle: () => buildPrReviewBundle,
|
|
@@ -5402,7 +5406,15 @@ var createRuleSkill = {
|
|
|
5402
5406
|
"- Use `ruleExtensions` to add project-specific content to existing bundle rules instead of replacing them"
|
|
5403
5407
|
].join("\n")
|
|
5404
5408
|
};
|
|
5405
|
-
|
|
5409
|
+
var DEFAULT_BASE_CONVENTIONS = {
|
|
5410
|
+
progressFiles: resolveProgressFiles(),
|
|
5411
|
+
sharedEditing: resolveSharedEditing(),
|
|
5412
|
+
temporalFraming: resolveTemporalFraming(),
|
|
5413
|
+
skillEvals: resolveSkillEvals(),
|
|
5414
|
+
issueTemplates: resolveIssueTemplates(),
|
|
5415
|
+
hasDownstreamIssueKindBundles: true
|
|
5416
|
+
};
|
|
5417
|
+
function buildBaseBundle(paths = DEFAULT_AGENT_PATHS, conventions = DEFAULT_BASE_CONVENTIONS) {
|
|
5406
5418
|
return {
|
|
5407
5419
|
name: "base",
|
|
5408
5420
|
description: "Core rules: project overview, interaction style, and general coding conventions",
|
|
@@ -6071,7 +6083,7 @@ function buildBaseBundle(paths = DEFAULT_AGENT_PATHS) {
|
|
|
6071
6083
|
// them via `agentConfig.additionalRulePaths`; other consumers
|
|
6072
6084
|
// get a clean default.
|
|
6073
6085
|
filePatterns: [".claude/agents/*.md", ".claude/procedures/**"],
|
|
6074
|
-
content: renderProgressFilesRuleContent(
|
|
6086
|
+
content: renderProgressFilesRuleContent(conventions.progressFiles),
|
|
6075
6087
|
platforms: {
|
|
6076
6088
|
cursor: { exclude: true }
|
|
6077
6089
|
},
|
|
@@ -6082,7 +6094,7 @@ function buildBaseBundle(paths = DEFAULT_AGENT_PATHS) {
|
|
|
6082
6094
|
description: "Shared-editing safety: single-entry deterministic-sort inserts on index files, commit-path verification, and the merge-conflict resolution recipe that keeps concurrent agent sessions from dropping each other's rows on shared registries and feature matrices.",
|
|
6083
6095
|
scope: AGENT_RULE_SCOPE.FILE_PATTERN,
|
|
6084
6096
|
filePatterns: DEFAULT_SHARED_INDEX_PATHS,
|
|
6085
|
-
content: renderSharedEditingRuleContent(
|
|
6097
|
+
content: renderSharedEditingRuleContent(conventions.sharedEditing),
|
|
6086
6098
|
platforms: {
|
|
6087
6099
|
cursor: { exclude: true }
|
|
6088
6100
|
},
|
|
@@ -6100,7 +6112,7 @@ function buildBaseBundle(paths = DEFAULT_AGENT_PATHS) {
|
|
|
6100
6112
|
"docs/src/content/docs/standards-research/**/*.md",
|
|
6101
6113
|
"docs/src/content/docs/customer-research/**/*.md"
|
|
6102
6114
|
],
|
|
6103
|
-
content: renderTemporalFramingRuleContent(
|
|
6115
|
+
content: renderTemporalFramingRuleContent(conventions.temporalFraming),
|
|
6104
6116
|
platforms: {
|
|
6105
6117
|
cursor: { exclude: true }
|
|
6106
6118
|
},
|
|
@@ -6113,7 +6125,7 @@ function buildBaseBundle(paths = DEFAULT_AGENT_PATHS) {
|
|
|
6113
6125
|
// Bundle defaults exclude paths into configulator's own
|
|
6114
6126
|
// source — see comment on progress-file-convention above.
|
|
6115
6127
|
filePatterns: [".claude/skills/**"],
|
|
6116
|
-
content: renderSkillEvalsRuleContent(
|
|
6128
|
+
content: renderSkillEvalsRuleContent(conventions.skillEvals),
|
|
6117
6129
|
platforms: {
|
|
6118
6130
|
cursor: { exclude: true }
|
|
6119
6131
|
},
|
|
@@ -6130,7 +6142,10 @@ function buildBaseBundle(paths = DEFAULT_AGENT_PATHS) {
|
|
|
6130
6142
|
".claude/agents/*.md",
|
|
6131
6143
|
`${paths.docsRoot}/agents/issue-templates.md`
|
|
6132
6144
|
],
|
|
6133
|
-
content: renderIssueTemplatesRuleContent(
|
|
6145
|
+
content: renderIssueTemplatesRuleContent(
|
|
6146
|
+
conventions.issueTemplates,
|
|
6147
|
+
conventions.hasDownstreamIssueKindBundles
|
|
6148
|
+
),
|
|
6134
6149
|
platforms: {
|
|
6135
6150
|
cursor: { exclude: true }
|
|
6136
6151
|
},
|
|
@@ -19831,37 +19846,7 @@ var scanCommand = {
|
|
|
19831
19846
|
""
|
|
19832
19847
|
].join("\n")
|
|
19833
19848
|
};
|
|
19834
|
-
var
|
|
19835
|
-
name: "orchestrator",
|
|
19836
|
-
description: "Pipeline orchestrator agent for issue triage, PR review, and queue management",
|
|
19837
|
-
// Always included by default
|
|
19838
|
-
appliesWhen: () => true,
|
|
19839
|
-
rules: [
|
|
19840
|
-
{
|
|
19841
|
-
name: "orchestrator-conventions",
|
|
19842
|
-
description: "Guidelines for orchestrator agent behavior and pipeline management, including the funnel-tier dispatch sort, scope gate, and per-agent scheduled-task layout",
|
|
19843
|
-
scope: AGENT_RULE_SCOPE.FILE_PATTERN,
|
|
19844
|
-
// Bundle defaults exclude paths into configulator's own source
|
|
19845
|
-
// (only meaningful when configulator is a workspace package).
|
|
19846
|
-
// codedrifters/packages restores them via
|
|
19847
|
-
// `agentConfig.additionalRulePaths`.
|
|
19848
|
-
filePatterns: [
|
|
19849
|
-
".claude/agents/orchestrator.md",
|
|
19850
|
-
".claude/scheduled-tasks/**"
|
|
19851
|
-
],
|
|
19852
|
-
content: buildOrchestratorConventionsContent(
|
|
19853
|
-
DEFAULT_AGENT_TIERS,
|
|
19854
|
-
resolveScopeGate(),
|
|
19855
|
-
resolveRunRatio(),
|
|
19856
|
-
resolveScheduledTasks(),
|
|
19857
|
-
resolveUnblockDependents()
|
|
19858
|
-
),
|
|
19859
|
-
platforms: {
|
|
19860
|
-
cursor: { exclude: true }
|
|
19861
|
-
},
|
|
19862
|
-
tags: ["workflow"]
|
|
19863
|
-
}
|
|
19864
|
-
],
|
|
19849
|
+
var ORCHESTRATOR_BUNDLE_STATIC = {
|
|
19865
19850
|
subAgents: [orchestratorSubAgent, issueWorkerSubAgent],
|
|
19866
19851
|
procedures: [
|
|
19867
19852
|
checkBlockedProcedure,
|
|
@@ -19877,6 +19862,51 @@ var orchestratorBundle = {
|
|
|
19877
19862
|
]
|
|
19878
19863
|
}
|
|
19879
19864
|
};
|
|
19865
|
+
var DEFAULT_ORCHESTRATOR_CONVENTIONS = {
|
|
19866
|
+
tiers: DEFAULT_AGENT_TIERS,
|
|
19867
|
+
scopeGate: resolveScopeGate(),
|
|
19868
|
+
runRatio: resolveRunRatio(),
|
|
19869
|
+
scheduledTasks: resolveScheduledTasks(),
|
|
19870
|
+
unblockDependents: resolveUnblockDependents(),
|
|
19871
|
+
excludeBundles: []
|
|
19872
|
+
};
|
|
19873
|
+
function buildOrchestratorBundle(conventions = DEFAULT_ORCHESTRATOR_CONVENTIONS) {
|
|
19874
|
+
return {
|
|
19875
|
+
name: "orchestrator",
|
|
19876
|
+
description: "Pipeline orchestrator agent for issue triage, PR review, and queue management",
|
|
19877
|
+
// Always included by default
|
|
19878
|
+
appliesWhen: () => true,
|
|
19879
|
+
rules: [
|
|
19880
|
+
{
|
|
19881
|
+
name: "orchestrator-conventions",
|
|
19882
|
+
description: "Guidelines for orchestrator agent behavior and pipeline management, including the funnel-tier dispatch sort, scope gate, and per-agent scheduled-task layout",
|
|
19883
|
+
scope: AGENT_RULE_SCOPE.FILE_PATTERN,
|
|
19884
|
+
// Bundle defaults exclude paths into configulator's own source
|
|
19885
|
+
// (only meaningful when configulator is a workspace package).
|
|
19886
|
+
// codedrifters/packages restores them via
|
|
19887
|
+
// `agentConfig.additionalRulePaths`.
|
|
19888
|
+
filePatterns: [
|
|
19889
|
+
".claude/agents/orchestrator.md",
|
|
19890
|
+
".claude/scheduled-tasks/**"
|
|
19891
|
+
],
|
|
19892
|
+
content: buildOrchestratorConventionsContent(
|
|
19893
|
+
conventions.tiers,
|
|
19894
|
+
conventions.scopeGate,
|
|
19895
|
+
conventions.runRatio,
|
|
19896
|
+
conventions.scheduledTasks,
|
|
19897
|
+
conventions.unblockDependents,
|
|
19898
|
+
conventions.excludeBundles
|
|
19899
|
+
),
|
|
19900
|
+
platforms: {
|
|
19901
|
+
cursor: { exclude: true }
|
|
19902
|
+
},
|
|
19903
|
+
tags: ["workflow"]
|
|
19904
|
+
}
|
|
19905
|
+
],
|
|
19906
|
+
...ORCHESTRATOR_BUNDLE_STATIC
|
|
19907
|
+
};
|
|
19908
|
+
}
|
|
19909
|
+
var orchestratorBundle = buildOrchestratorBundle();
|
|
19880
19910
|
|
|
19881
19911
|
// src/agent/bundles/people-profile.ts
|
|
19882
19912
|
function buildPeopleProfileAnalystSubAgent(paths, issueDefaults, tier) {
|
|
@@ -34350,10 +34380,14 @@ function renderPriorityRulesSection(rules) {
|
|
|
34350
34380
|
}
|
|
34351
34381
|
|
|
34352
34382
|
// src/agent/bundles/index.ts
|
|
34353
|
-
|
|
34383
|
+
var DEFAULT_RULE_CONVENTIONS = {
|
|
34384
|
+
base: DEFAULT_BASE_CONVENTIONS,
|
|
34385
|
+
orchestrator: DEFAULT_ORCHESTRATOR_CONVENTIONS
|
|
34386
|
+
};
|
|
34387
|
+
function buildBuiltInBundles(paths = DEFAULT_AGENT_PATHS, issueDefaults = DEFAULT_RESOLVED_ISSUE_DEFAULTS, defaultAgentTier = AGENT_MODEL.BALANCED, bundleAgentTiers = /* @__PURE__ */ new Map(), prReviewPolicy = resolvePrReviewPolicy(), buildPolicy = DEFAULT_BUILD_POLICY, conventions = DEFAULT_RULE_CONVENTIONS) {
|
|
34354
34388
|
const tierFor = (bundle) => bundleAgentTiers.get(bundle) ?? defaultAgentTier;
|
|
34355
34389
|
return [
|
|
34356
|
-
buildBaseBundle(paths),
|
|
34390
|
+
buildBaseBundle(paths, conventions.base),
|
|
34357
34391
|
upstreamConfigulatorDocsBundle,
|
|
34358
34392
|
typescriptBundle,
|
|
34359
34393
|
vitestBundle,
|
|
@@ -34366,7 +34400,7 @@ function buildBuiltInBundles(paths = DEFAULT_AGENT_PATHS, issueDefaults = DEFAUL
|
|
|
34366
34400
|
slackBundle,
|
|
34367
34401
|
buildMeetingAnalysisBundle(tierFor("meeting-analysis")),
|
|
34368
34402
|
agendaBundle,
|
|
34369
|
-
|
|
34403
|
+
buildOrchestratorBundle(conventions.orchestrator),
|
|
34370
34404
|
buildPrReviewBundle(prReviewPolicy),
|
|
34371
34405
|
buildRequirementsAnalystBundle(paths, issueDefaults),
|
|
34372
34406
|
buildRequirementsWriterBundle(paths, issueDefaults),
|
|
@@ -35454,6 +35488,13 @@ var AgentConfig = class _AgentConfig extends import_projen8.Component {
|
|
|
35454
35488
|
* credential requirement when a remote cache actually exists. The
|
|
35455
35489
|
* getter is lazy by design — `TurboRepo` must already be attached
|
|
35456
35490
|
* to the project when the bundles are first read.
|
|
35491
|
+
*
|
|
35492
|
+
* Every **config-driven convention rule** is likewise resolved here
|
|
35493
|
+
* and seeded into its owning bundle, so the rule enters the rule map
|
|
35494
|
+
* already carrying the consumer's settings. Rewriting those rules
|
|
35495
|
+
* after the map was assembled — the previous approach — silently
|
|
35496
|
+
* discarded any `ruleExtensions` append or same-name `rules`
|
|
35497
|
+
* override that had already been merged in.
|
|
35457
35498
|
*/
|
|
35458
35499
|
get pathAwareBundles() {
|
|
35459
35500
|
if (!this.cachedBundles) {
|
|
@@ -35463,11 +35504,52 @@ var AgentConfig = class _AgentConfig extends import_projen8.Component {
|
|
|
35463
35504
|
resolveDefaultAgentTier(this.options),
|
|
35464
35505
|
resolveBundleAgentTiers(this.options),
|
|
35465
35506
|
resolvePrReviewPolicy(this.options.prReviewPolicy),
|
|
35466
|
-
resolveBuildPolicy(this.project)
|
|
35507
|
+
resolveBuildPolicy(this.project),
|
|
35508
|
+
this.resolvedRuleConventions
|
|
35467
35509
|
);
|
|
35468
35510
|
}
|
|
35469
35511
|
return this.cachedBundles;
|
|
35470
35512
|
}
|
|
35513
|
+
/**
|
|
35514
|
+
* Resolved settings for every config-driven convention rule, derived
|
|
35515
|
+
* from this project's options. Consumed by `buildBuiltInBundles` so
|
|
35516
|
+
* the `base` and `orchestrator` bundles seed final rule content.
|
|
35517
|
+
*
|
|
35518
|
+
* `excludeBundles` feeds two of these: the orchestrator's rendered
|
|
35519
|
+
* tier table / scope-gate overrides / scheduled-tasks registry drop
|
|
35520
|
+
* rows owned by excluded bundles, and the issue-templates rule falls
|
|
35521
|
+
* back to its disabled stub once every downstream-issue-kind bundle
|
|
35522
|
+
* has been excluded.
|
|
35523
|
+
*/
|
|
35524
|
+
get resolvedRuleConventions() {
|
|
35525
|
+
const excludeBundles = this.options.excludeBundles ?? [];
|
|
35526
|
+
const orchestratorAssets = resolveOrchestratorAssets(
|
|
35527
|
+
this.options.tiers,
|
|
35528
|
+
this.options.scopeGate,
|
|
35529
|
+
this.options.runRatio,
|
|
35530
|
+
this.options.scheduledTasks,
|
|
35531
|
+
this.options.unblockDependents,
|
|
35532
|
+
excludeBundles
|
|
35533
|
+
);
|
|
35534
|
+
return {
|
|
35535
|
+
base: {
|
|
35536
|
+
progressFiles: resolveProgressFiles(this.options.progressFiles),
|
|
35537
|
+
sharedEditing: resolveSharedEditing(this.options.sharedEditing),
|
|
35538
|
+
temporalFraming: resolveTemporalFraming(this.options.temporalFraming),
|
|
35539
|
+
skillEvals: resolveSkillEvals(this.options.skillEvals),
|
|
35540
|
+
issueTemplates: resolveIssueTemplates(this.options.issueTemplates),
|
|
35541
|
+
hasDownstreamIssueKindBundles: hasAnyDownstreamIssueKindBundle(excludeBundles)
|
|
35542
|
+
},
|
|
35543
|
+
orchestrator: {
|
|
35544
|
+
tiers: orchestratorAssets.tiers,
|
|
35545
|
+
scopeGate: orchestratorAssets.scopeGate,
|
|
35546
|
+
runRatio: orchestratorAssets.runRatio,
|
|
35547
|
+
scheduledTasks: orchestratorAssets.scheduledTasks,
|
|
35548
|
+
unblockDependents: orchestratorAssets.unblockDependents,
|
|
35549
|
+
excludeBundles
|
|
35550
|
+
}
|
|
35551
|
+
};
|
|
35552
|
+
}
|
|
35471
35553
|
/**
|
|
35472
35554
|
* Returns the bundles that are active for this project: auto-detected
|
|
35473
35555
|
* bundles (when `autoDetectBundles !== false`) plus force-included
|
|
@@ -35782,43 +35864,10 @@ ${section}`
|
|
|
35782
35864
|
}
|
|
35783
35865
|
}
|
|
35784
35866
|
const excludedBundleNames = this.options.excludeBundles ?? [];
|
|
35785
|
-
if (this.options.tiers || this.options.scopeGate || this.options.runRatio || this.options.scheduledTasks || this.options.unblockDependents || excludedBundleNames.length > 0) {
|
|
35786
|
-
const orchestratorRule = ruleMap.get("orchestrator-conventions");
|
|
35787
|
-
if (orchestratorRule) {
|
|
35788
|
-
const { conventionsContent } = resolveOrchestratorAssets(
|
|
35789
|
-
this.options.tiers,
|
|
35790
|
-
this.options.scopeGate,
|
|
35791
|
-
this.options.runRatio,
|
|
35792
|
-
this.options.scheduledTasks,
|
|
35793
|
-
this.options.unblockDependents,
|
|
35794
|
-
excludedBundleNames
|
|
35795
|
-
);
|
|
35796
|
-
if (conventionsContent !== orchestratorRule.content) {
|
|
35797
|
-
ruleMap.set("orchestrator-conventions", {
|
|
35798
|
-
...orchestratorRule,
|
|
35799
|
-
content: conventionsContent
|
|
35800
|
-
});
|
|
35801
|
-
}
|
|
35802
|
-
}
|
|
35803
|
-
}
|
|
35804
35867
|
const injectBundleHooks = this.options.claudeMd?.injectBundleHooks ?? true;
|
|
35805
35868
|
const resolvedProgressFiles = resolveProgressFiles(
|
|
35806
35869
|
this.options.progressFiles
|
|
35807
35870
|
);
|
|
35808
|
-
if (this.options.progressFiles) {
|
|
35809
|
-
const progressRule = ruleMap.get("progress-file-convention");
|
|
35810
|
-
if (progressRule) {
|
|
35811
|
-
const progressContent = renderProgressFilesRuleContent(
|
|
35812
|
-
resolvedProgressFiles
|
|
35813
|
-
);
|
|
35814
|
-
if (progressContent !== progressRule.content) {
|
|
35815
|
-
ruleMap.set("progress-file-convention", {
|
|
35816
|
-
...progressRule,
|
|
35817
|
-
content: progressContent
|
|
35818
|
-
});
|
|
35819
|
-
}
|
|
35820
|
-
}
|
|
35821
|
-
}
|
|
35822
35871
|
if (injectBundleHooks && resolvedProgressFiles.enabled) {
|
|
35823
35872
|
for (const [ruleName, label] of PROGRESS_FILE_BUNDLE_HOOKS) {
|
|
35824
35873
|
const existing = ruleMap.get(ruleName);
|
|
@@ -35845,20 +35894,6 @@ ${hook}`
|
|
|
35845
35894
|
const resolvedSharedEditingForRules = resolveSharedEditing(
|
|
35846
35895
|
this.options.sharedEditing
|
|
35847
35896
|
);
|
|
35848
|
-
if (this.options.sharedEditing) {
|
|
35849
|
-
const sharedEditingRule = ruleMap.get("shared-editing-safety");
|
|
35850
|
-
if (sharedEditingRule) {
|
|
35851
|
-
const sharedEditingContent = renderSharedEditingRuleContent(
|
|
35852
|
-
resolvedSharedEditingForRules
|
|
35853
|
-
);
|
|
35854
|
-
if (sharedEditingContent !== sharedEditingRule.content) {
|
|
35855
|
-
ruleMap.set("shared-editing-safety", {
|
|
35856
|
-
...sharedEditingRule,
|
|
35857
|
-
content: sharedEditingContent
|
|
35858
|
-
});
|
|
35859
|
-
}
|
|
35860
|
-
}
|
|
35861
|
-
}
|
|
35862
35897
|
if (injectBundleHooks && resolvedSharedEditingForRules.enabled) {
|
|
35863
35898
|
for (const [ruleName, label] of SHARED_EDITING_BUNDLE_HOOKS) {
|
|
35864
35899
|
const existing = ruleMap.get(ruleName);
|
|
@@ -35885,20 +35920,6 @@ ${hook}`
|
|
|
35885
35920
|
const resolvedSkillEvalsForRules = resolveSkillEvals(
|
|
35886
35921
|
this.options.skillEvals
|
|
35887
35922
|
);
|
|
35888
|
-
if (this.options.skillEvals) {
|
|
35889
|
-
const skillEvalsRule = ruleMap.get("skill-evals");
|
|
35890
|
-
if (skillEvalsRule) {
|
|
35891
|
-
const skillEvalsContent = renderSkillEvalsRuleContent(
|
|
35892
|
-
resolvedSkillEvalsForRules
|
|
35893
|
-
);
|
|
35894
|
-
if (skillEvalsContent !== skillEvalsRule.content) {
|
|
35895
|
-
ruleMap.set("skill-evals", {
|
|
35896
|
-
...skillEvalsRule,
|
|
35897
|
-
content: skillEvalsContent
|
|
35898
|
-
});
|
|
35899
|
-
}
|
|
35900
|
-
}
|
|
35901
|
-
}
|
|
35902
35923
|
if (injectBundleHooks && resolvedSkillEvalsForRules.enabled) {
|
|
35903
35924
|
for (const [ruleName, label] of SKILL_EVALS_BUNDLE_HOOKS) {
|
|
35904
35925
|
const existing = ruleMap.get(ruleName);
|
|
@@ -35926,21 +35947,6 @@ ${hook}`
|
|
|
35926
35947
|
this.options.issueTemplates
|
|
35927
35948
|
);
|
|
35928
35949
|
const hasDownstreamBundles = hasAnyDownstreamIssueKindBundle(excludedBundleNames);
|
|
35929
|
-
if (this.options.issueTemplates || !hasDownstreamBundles) {
|
|
35930
|
-
const issueTemplatesRule = ruleMap.get("issue-templates-convention");
|
|
35931
|
-
if (issueTemplatesRule) {
|
|
35932
|
-
const issueTemplatesContent = renderIssueTemplatesRuleContent(
|
|
35933
|
-
resolvedIssueTemplatesForRules,
|
|
35934
|
-
hasDownstreamBundles
|
|
35935
|
-
);
|
|
35936
|
-
if (issueTemplatesContent !== issueTemplatesRule.content) {
|
|
35937
|
-
ruleMap.set("issue-templates-convention", {
|
|
35938
|
-
...issueTemplatesRule,
|
|
35939
|
-
content: issueTemplatesContent
|
|
35940
|
-
});
|
|
35941
|
-
}
|
|
35942
|
-
}
|
|
35943
|
-
}
|
|
35944
35950
|
if (injectBundleHooks && resolvedIssueTemplatesForRules.enabled && hasDownstreamBundles) {
|
|
35945
35951
|
for (const [ruleName, label] of ISSUE_TEMPLATES_BUNDLE_HOOKS) {
|
|
35946
35952
|
const existing = ruleMap.get(ruleName);
|
|
@@ -35964,23 +35970,6 @@ ${hook}`
|
|
|
35964
35970
|
});
|
|
35965
35971
|
}
|
|
35966
35972
|
}
|
|
35967
|
-
const resolvedTemporalFramingForRules = resolveTemporalFraming(
|
|
35968
|
-
this.options.temporalFraming
|
|
35969
|
-
);
|
|
35970
|
-
if (this.options.temporalFraming) {
|
|
35971
|
-
const temporalFramingRule = ruleMap.get("temporal-framing-convention");
|
|
35972
|
-
if (temporalFramingRule) {
|
|
35973
|
-
const temporalFramingContent = renderTemporalFramingRuleContent(
|
|
35974
|
-
resolvedTemporalFramingForRules
|
|
35975
|
-
);
|
|
35976
|
-
if (temporalFramingContent !== temporalFramingRule.content) {
|
|
35977
|
-
ruleMap.set("temporal-framing-convention", {
|
|
35978
|
-
...temporalFramingRule,
|
|
35979
|
-
content: temporalFramingContent
|
|
35980
|
-
});
|
|
35981
|
-
}
|
|
35982
|
-
}
|
|
35983
|
-
}
|
|
35984
35973
|
const tierExamples = this.options.features?.sourceTierExamples;
|
|
35985
35974
|
if (_AgentConfig.hasActiveTierExamples(tierExamples)) {
|
|
35986
35975
|
const sourceRule = ruleMap.get("source-quality-verification");
|
|
@@ -42193,6 +42182,7 @@ export const collections = {
|
|
|
42193
42182
|
DEFAULT_API_EXTRACTOR_REPORT_FILENAME,
|
|
42194
42183
|
DEFAULT_API_EXTRACTOR_REPORT_FOLDER,
|
|
42195
42184
|
DEFAULT_AUDIT_REPORT_DIR,
|
|
42185
|
+
DEFAULT_BASE_CONVENTIONS,
|
|
42196
42186
|
DEFAULT_BUILD_POLICY,
|
|
42197
42187
|
DEFAULT_BUNDLE_OVERRIDES,
|
|
42198
42188
|
DEFAULT_DECOMPOSITION_TEMPLATE,
|
|
@@ -42209,6 +42199,7 @@ export const collections = {
|
|
|
42209
42199
|
DEFAULT_ISSUE_TEMPLATES_PATH,
|
|
42210
42200
|
DEFAULT_ISSUE_TEMPLATES_REQUIRE_REFERENCE,
|
|
42211
42201
|
DEFAULT_OFF_PEAK_CRON_EXAMPLE,
|
|
42202
|
+
DEFAULT_ORCHESTRATOR_CONVENTIONS,
|
|
42212
42203
|
DEFAULT_PARTIAL_UNBLOCK_COMMENT_TEMPLATE,
|
|
42213
42204
|
DEFAULT_PATHS_EXEMPT_FROM_SIZE,
|
|
42214
42205
|
DEFAULT_PRIORITY_LABELS,
|
|
@@ -42221,6 +42212,7 @@ export const collections = {
|
|
|
42221
42212
|
DEFAULT_REQUIREMENT_CATEGORY_DIRS,
|
|
42222
42213
|
DEFAULT_REQUIRE_PRODUCT_CONTEXT,
|
|
42223
42214
|
DEFAULT_RESOLVED_ISSUE_DEFAULTS,
|
|
42215
|
+
DEFAULT_RULE_CONVENTIONS,
|
|
42224
42216
|
DEFAULT_SAMPLE_COMPILER_OPTIONS,
|
|
42225
42217
|
DEFAULT_SCHEDULED_TASKS_ROOT,
|
|
42226
42218
|
DEFAULT_SCHEDULED_TASK_ENTRIES,
|
|
@@ -42324,6 +42316,7 @@ export const collections = {
|
|
|
42324
42316
|
buildIndustryDiscoveryBundle,
|
|
42325
42317
|
buildMaintenanceAuditBundle,
|
|
42326
42318
|
buildMeetingAnalysisBundle,
|
|
42319
|
+
buildOrchestratorBundle,
|
|
42327
42320
|
buildOrchestratorConventionsContent,
|
|
42328
42321
|
buildPeopleProfileBundle,
|
|
42329
42322
|
buildPrReviewBundle,
|