@codedrifters/configulator 0.0.279 → 0.0.280

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 CHANGED
@@ -2233,6 +2233,43 @@ interface SkillEvalsConfig {
2233
2233
  */
2234
2234
  readonly emitRunner?: boolean;
2235
2235
  }
2236
+ /*******************************************************************************
2237
+ *
2238
+ * Upstream Configulator Docs Config
2239
+ *
2240
+ ******************************************************************************/
2241
+ /**
2242
+ * Upstream-configulator-docs convention consumed by the
2243
+ * `upstream-configulator-docs` bundle. The bundle ships a top-level
2244
+ * CLAUDE.md reminder plus a `.claude/rules/` detail file that point
2245
+ * downstream agents at the upstream `codedrifters/packages` repo: where
2246
+ * configulator's docs live, how to read them via `gh api` /
2247
+ * `gh search code`, and how to file upstream issues for missing
2248
+ * features instead of working around them with downstream rule
2249
+ * overrides.
2250
+ *
2251
+ * Every field is optional. When the whole config is absent the
2252
+ * convention ships **enabled** so every consumer of
2253
+ * `@codedrifters/configulator` carries the upstream pointers by
2254
+ * default.
2255
+ *
2256
+ * Non-CodeDrifters consumers — repos that depend on configulator but
2257
+ * do not want to point downstream agents at this upstream — set
2258
+ * `enabled: false` to drop the bundle's rules entirely.
2259
+ *
2260
+ * @see ./bundles/upstream-configulator-docs.ts
2261
+ */
2262
+ interface UpstreamConfigulatorConfig {
2263
+ /**
2264
+ * Master switch for the upstream-configulator-docs convention. When
2265
+ * `false`, `AgentConfig.resolveRules` filters out every rule whose
2266
+ * name starts with `upstream-configulator-docs`, so the bundle
2267
+ * contributes nothing to CLAUDE.md or `.claude/rules/`.
2268
+ *
2269
+ * Defaults to `true` — the convention is on by default.
2270
+ */
2271
+ readonly enabled?: boolean;
2272
+ }
2236
2273
  /*******************************************************************************
2237
2274
  *
2238
2275
  * Issue Templates Config
@@ -2997,6 +3034,26 @@ interface AgentConfigOptions {
2997
3034
  * @see ./bundles/issue-templates.ts#renderIssueTemplatesRuleContent
2998
3035
  */
2999
3036
  readonly issueTemplates?: IssueTemplatesConfig;
3037
+ /**
3038
+ * Upstream-configulator-docs convention consumed by the
3039
+ * `upstream-configulator-docs` bundle. Ships pointers to the
3040
+ * upstream `codedrifters/packages` repo so downstream agents know
3041
+ * where configulator's docs live, how to read them, and how to file
3042
+ * upstream issues for missing features instead of papering over
3043
+ * gaps with downstream rule overrides.
3044
+ *
3045
+ * When the whole config is omitted, the convention ships
3046
+ * **enabled** by default.
3047
+ *
3048
+ * Supply `enabled: false` to drop the bundle's rules entirely —
3049
+ * appropriate for non-CodeDrifters consumers that depend on
3050
+ * configulator but do not want to point downstream agents at the
3051
+ * upstream repo.
3052
+ *
3053
+ * @see UpstreamConfigulatorConfig
3054
+ * @see ./bundles/upstream-configulator-docs.ts
3055
+ */
3056
+ readonly upstreamConfigulator?: UpstreamConfigulatorConfig;
3000
3057
  }
3001
3058
 
3002
3059
  /**
@@ -5262,6 +5319,38 @@ declare const turborepoBundle: AgentRuleBundle;
5262
5319
  */
5263
5320
  declare const typescriptBundle: AgentRuleBundle;
5264
5321
 
5322
+ /**
5323
+ * Default master switch for the upstream-configulator-docs convention.
5324
+ * When no config is supplied, the convention ships **enabled** so every
5325
+ * project that consumes `@codedrifters/configulator` carries guidance on
5326
+ * how to read configulator's upstream docs and how to file feature
5327
+ * requests against `codedrifters/packages` instead of working around
5328
+ * gaps in downstream rule overrides.
5329
+ *
5330
+ * Non-CodeDrifters consumers that do not want to point downstream agents
5331
+ * at the `codedrifters/packages` repo can opt out by setting
5332
+ * `AgentConfigOptions.upstreamConfigulator.enabled = false`.
5333
+ *
5334
+ * @see UpstreamConfigulatorConfig
5335
+ */
5336
+ declare const DEFAULT_UPSTREAM_CONFIGULATOR_ENABLED = true;
5337
+ /**
5338
+ * Upstream-configulator-docs bundle — always-on by default. Ships two
5339
+ * rules: an `ALWAYS`-scoped rule that renders into CLAUDE.md as a
5340
+ * top-level reminder that the project consumes
5341
+ * `@codedrifters/configulator` and where its upstream docs live, plus a
5342
+ * `FILE_PATTERN`-scoped detail rule that renders into
5343
+ * `.claude/rules/upstream-configulator-docs-detail.md` for agents
5344
+ * working on configulator-aware files.
5345
+ *
5346
+ * The bundle is gated by `AgentConfigOptions.upstreamConfigulator.enabled`
5347
+ * (default `true`). When the consumer flips it to `false`,
5348
+ * `AgentConfig.resolveRules` drops every rule whose name starts with
5349
+ * `upstream-configulator-docs` so non-CodeDrifters consumers that do
5350
+ * not want the upstream-pointer guidance opt out cleanly.
5351
+ */
5352
+ declare const upstreamConfigulatorDocsBundle: AgentRuleBundle;
5353
+
5265
5354
  /**
5266
5355
  * Vitest bundle — auto-detected when the Vitest component is present.
5267
5356
  */
@@ -9246,4 +9335,4 @@ declare const COMPLETE_JOB_ID = "complete";
9246
9335
  */
9247
9336
  declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
9248
9337
 
9249
- export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AGENT_TIER_ROLES, AGENT_TIER_VALUES, AUDIT_CATEGORY_ORDER, AgentConfig, type AgentConfigOptions, type AgentExpansionRules, type AgentFeaturesConfig, type AgentModel, type AgentPathsConfig, type AgentPlatform, type AgentPlatformOverrides, type AgentProcedure, type AgentRule, type AgentRuleBundle, type AgentRuleScope, type AgentSkill, type AgentSubAgent, type AgentSubAgentPlatformOverrides, type AgentTier, type AgentTierConfig, type AgentTierEntry, type AnalyzeTsDocCoverageOptions, type ApiDiffCheckOptions, type ApiDiffFinding, type ApiDiffResult, ApiExtractor, type ApiExtractorOptions, type ApiExtractorReportOptions, type ApiSurfaceEntry, type ApproveMergeUpgradeOptions, AstroConfig, type AstroConfigOptions, type AstroIntegrationSpec, AstroOutput, AstroProject, type AstroProjectOptions, AuditCategory, type AuditCheckRunner, type AuditCheckRunnerContext, type AuditFinding, type AuditFindingBase, type AuditLocation, AuditMode, type AuditReport, AuditSeverity, type AwsAccount, AwsCdkProject, type AwsCdkProjectOptions, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, type AwsDeploymentTargetOptions, type AwsLocalDeploymentConfig, type AwsOrganization, type AwsRegion, AwsTeardownWorkflow, type AwsTeardownWorkflowOptions, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, type CiDeploymentConfig, type ClassTypeOptions, type ClaudeAutoModeConfig, type ClaudeHookAction, type ClaudeHookEntry, type ClaudeHooksConfig, type ClaudePermissionsConfig, type ClaudeRuleTarget, type ClaudeSandboxConfig, type ClaudeSettingsConfig, type CompileFencedSamplesOptions, type CopilotHandoff, type CursorHookAction, type CursorHooksConfig, type CursorSettingsConfig, type CustomDocSection, 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, type DeployWorkflowOptions, type DeploymentMetadata, type DocReferenceRecord, type ExtractDocReferencesOptions, type ExtractFencedSamplesOptions, type FencedSampleRecord, type FocusArea, type FocusAreaMatch, type FocusConfig, type GitBranch, type GitHubBoardMetadata, type GitHubProjectMetadata, type GitHubSprintMetadata, type IDependencyResolver, type IssueTemplatesConfig, JsiiFaker, LAYOUT_ENFORCEMENT, LAYOUT_ROOT_BY_PROJECT_TYPE, type LabelDefinition, type LayoutEnforcement, type LayoutViolation, type LinkFailureFinding, MAX_LABEL_DESCRIPTION_LENGTH, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MONOREPO_LAYOUT, type McpServerConfig, type McpTransport, type MeetingArea, type MeetingScope, type MeetingType, type MeetingTypeKind, type MeetingsConfig, type MergeMethod, type MonorepoLayoutRoot, MonorepoProject, type MonorepoProjectOptions, type OrganizationMetadata, PREFLIGHT_MERGE_METHOD_VALUES, PROD_DEPLOY_NAME, PROGRESS_FILES_FORMAT_VALUES, PnpmWorkspace, type PnpmWorkspaceOptions, type PreflightMergeMethod, type PreflightPrConfig, type PriorityRule, type ProgressFilesConfig, ProjectMetadata, type ProjectMetadataOptions, REQUIREMENTS_WRITER_PATHS, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, type ReferenceMismatchCheckOptions, type ReferenceMismatchFinding, type RemoteCacheOptions, type RepositoryMetadata, ResetTask, type ResetTaskOptions, type ResolvedAgentPaths, type ResolvedAgentTier, type ResolvedIssueTemplates, type ResolvedPreflightPr, type ResolvedProgressFiles, type ResolvedProjectMetadata, type ResolvedRunRatio, type ResolvedScheduledTask, type ResolvedScheduledTasks, type ResolvedScopeGate, type ResolvedSharedEditing, type ResolvedSkillEvals, type ResolvedUnblockDependents, type RunRatioConfig, type RunScanOptions, type RunScanResult, SCHEDULED_TASK_MODEL_VALUES, SCOPE_CLASS_VALUES, SHARED_EDITING_CONFLICT_STRATEGY_VALUES, STARLIGHT_ROLE, type SampleCompilationFailure, type SampleFailureFinding, SampleLang, type ScheduledTaskEntry, type ScheduledTaskModel, type ScheduledTaskOverride, type ScheduledTasksConfig, type ScopeClass, type ScopeGateConfig, type ScopeGateThresholds, type SharedEditingConfig, type SkillEvalsConfig, type SlackMetadata, type SourceTierExamples, type StarlightEditLink, type StarlightLogo, StarlightProject, type StarlightProjectOptions, type StarlightRole, type StarlightSidebarItem, type StarlightSingletonViolation, type StarlightSocialLink, type SyncLabelsOptions, type TemplateResolveResult, TestRunner, TsDocCoverageKind, type TsDocCoverageRecord, type TsdocCoverageCheckOptions, type TsdocCoverageFinding, TurboRepo, type TurboRepoOptions, TurboRepoTask, type TurboRepoTaskOptions, TypeScriptConfig, TypeScriptProject, type TypeScriptProjectOptions, UNKNOWN_TYPE_FALLBACK_TIER, type UnblockDependentsConfig, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, type VersionKey, Vitest, type VitestConfigOptions, type VitestOptions, 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, createApiDiffCheck, createReferenceMismatchCheck, createTsdocCoverageCheck, customerProfileBundle, diffApiRollups, docsSyncBundle, emptyCategoryBuckets, extractApiProcedure, extractDocReferences, extractFencedSamples, formatLayoutViolation, formatStarlightSingletonViolation, getLatestEligibleVersion, githubWorkflowBundle, industryDiscoveryBundle, jestBundle, maintenanceAuditBundle, meetingAnalysisBundle, orchestratorBundle, parseApiRollup, peopleProfileBundle, persistAuditReport, pnpmBundle, prReviewBundle, projenBundle, referenceRecordToFinding, 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, tsdocRecordToFindings, turborepoBundle, typescriptBundle, validateAgentTierConfig, validateIssueTemplatesConfig, validateMonorepoLayout, validatePreflightPrConfig, validateProgressFilesConfig, validateRunRatioConfig, validateScheduledTasksConfig, validateScopeGateConfig, validateSharedEditingConfig, validateSkillEvalsConfig, validateStarlightSingleton, validateUnblockDependentsConfig, vitestBundle };
9338
+ export { AGENT_MODEL, AGENT_PLATFORM, AGENT_RULE_SCOPE, AGENT_TIER_ROLES, AGENT_TIER_VALUES, AUDIT_CATEGORY_ORDER, AgentConfig, type AgentConfigOptions, type AgentExpansionRules, type AgentFeaturesConfig, type AgentModel, type AgentPathsConfig, type AgentPlatform, type AgentPlatformOverrides, type AgentProcedure, type AgentRule, type AgentRuleBundle, type AgentRuleScope, type AgentSkill, type AgentSubAgent, type AgentSubAgentPlatformOverrides, type AgentTier, type AgentTierConfig, type AgentTierEntry, type AnalyzeTsDocCoverageOptions, type ApiDiffCheckOptions, type ApiDiffFinding, type ApiDiffResult, ApiExtractor, type ApiExtractorOptions, type ApiExtractorReportOptions, type ApiSurfaceEntry, type ApproveMergeUpgradeOptions, AstroConfig, type AstroConfigOptions, type AstroIntegrationSpec, AstroOutput, AstroProject, type AstroProjectOptions, AuditCategory, type AuditCheckRunner, type AuditCheckRunnerContext, type AuditFinding, type AuditFindingBase, type AuditLocation, AuditMode, type AuditReport, AuditSeverity, type AwsAccount, AwsCdkProject, type AwsCdkProjectOptions, AwsDeployWorkflow, AwsDeploymentConfig, AwsDeploymentTarget, type AwsDeploymentTargetOptions, type AwsLocalDeploymentConfig, type AwsOrganization, type AwsRegion, AwsTeardownWorkflow, type AwsTeardownWorkflowOptions, BUILT_IN_BUNDLES, CLAUDE_RULE_TARGET, COMPLETE_JOB_ID, type CiDeploymentConfig, type ClassTypeOptions, type ClaudeAutoModeConfig, type ClaudeHookAction, type ClaudeHookEntry, type ClaudeHooksConfig, type ClaudePermissionsConfig, type ClaudeRuleTarget, type ClaudeSandboxConfig, type ClaudeSettingsConfig, type CompileFencedSamplesOptions, type CopilotHandoff, type CursorHookAction, type CursorHooksConfig, type CursorSettingsConfig, type CustomDocSection, 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, DEFAULT_UPSTREAM_CONFIGULATOR_ENABLED, DOCS_SYNC_AUDIT_SCHEMA_VERSION, type DeployWorkflowOptions, type DeploymentMetadata, type DocReferenceRecord, type ExtractDocReferencesOptions, type ExtractFencedSamplesOptions, type FencedSampleRecord, type FocusArea, type FocusAreaMatch, type FocusConfig, type GitBranch, type GitHubBoardMetadata, type GitHubProjectMetadata, type GitHubSprintMetadata, type IDependencyResolver, type IssueTemplatesConfig, JsiiFaker, LAYOUT_ENFORCEMENT, LAYOUT_ROOT_BY_PROJECT_TYPE, type LabelDefinition, type LayoutEnforcement, type LayoutViolation, type LinkFailureFinding, MAX_LABEL_DESCRIPTION_LENGTH, MCP_TRANSPORT, MERGE_METHODS, MIMIMUM_RELEASE_AGE, MINIMUM_RELEASE_AGE, MONOREPO_LAYOUT, type McpServerConfig, type McpTransport, type MeetingArea, type MeetingScope, type MeetingType, type MeetingTypeKind, type MeetingsConfig, type MergeMethod, type MonorepoLayoutRoot, MonorepoProject, type MonorepoProjectOptions, type OrganizationMetadata, PREFLIGHT_MERGE_METHOD_VALUES, PROD_DEPLOY_NAME, PROGRESS_FILES_FORMAT_VALUES, PnpmWorkspace, type PnpmWorkspaceOptions, type PreflightMergeMethod, type PreflightPrConfig, type PriorityRule, type ProgressFilesConfig, ProjectMetadata, type ProjectMetadataOptions, REQUIREMENTS_WRITER_PATHS, ROOT_CI_TASK_NAME, ROOT_TURBO_TASK_NAME, type ReferenceMismatchCheckOptions, type ReferenceMismatchFinding, type RemoteCacheOptions, type RepositoryMetadata, ResetTask, type ResetTaskOptions, type ResolvedAgentPaths, type ResolvedAgentTier, type ResolvedIssueTemplates, type ResolvedPreflightPr, type ResolvedProgressFiles, type ResolvedProjectMetadata, type ResolvedRunRatio, type ResolvedScheduledTask, type ResolvedScheduledTasks, type ResolvedScopeGate, type ResolvedSharedEditing, type ResolvedSkillEvals, type ResolvedUnblockDependents, type RunRatioConfig, type RunScanOptions, type RunScanResult, SCHEDULED_TASK_MODEL_VALUES, SCOPE_CLASS_VALUES, SHARED_EDITING_CONFLICT_STRATEGY_VALUES, STARLIGHT_ROLE, type SampleCompilationFailure, type SampleFailureFinding, SampleLang, type ScheduledTaskEntry, type ScheduledTaskModel, type ScheduledTaskOverride, type ScheduledTasksConfig, type ScopeClass, type ScopeGateConfig, type ScopeGateThresholds, type SharedEditingConfig, type SkillEvalsConfig, type SlackMetadata, type SourceTierExamples, type StarlightEditLink, type StarlightLogo, StarlightProject, type StarlightProjectOptions, type StarlightRole, type StarlightSidebarItem, type StarlightSingletonViolation, type StarlightSocialLink, type SyncLabelsOptions, type TemplateResolveResult, TestRunner, TsDocCoverageKind, type TsDocCoverageRecord, type TsdocCoverageCheckOptions, type TsdocCoverageFinding, TurboRepo, type TurboRepoOptions, TurboRepoTask, type TurboRepoTaskOptions, TypeScriptConfig, TypeScriptProject, type TypeScriptProjectOptions, UNKNOWN_TYPE_FALLBACK_TIER, type UnblockDependentsConfig, type UpstreamConfigulatorConfig, VERSION, VERSION_KEYS_SKIP, VERSION_NPM_PACKAGES, VSCodeConfig, type VersionKey, Vitest, type VitestConfigOptions, type VitestOptions, 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, createApiDiffCheck, createReferenceMismatchCheck, createTsdocCoverageCheck, customerProfileBundle, diffApiRollups, docsSyncBundle, emptyCategoryBuckets, extractApiProcedure, extractDocReferences, extractFencedSamples, formatLayoutViolation, formatStarlightSingletonViolation, getLatestEligibleVersion, githubWorkflowBundle, industryDiscoveryBundle, jestBundle, maintenanceAuditBundle, meetingAnalysisBundle, orchestratorBundle, parseApiRollup, peopleProfileBundle, persistAuditReport, pnpmBundle, prReviewBundle, projenBundle, referenceRecordToFinding, 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, tsdocRecordToFindings, turborepoBundle, typescriptBundle, upstreamConfigulatorDocsBundle, validateAgentTierConfig, validateIssueTemplatesConfig, validateMonorepoLayout, validatePreflightPrConfig, validateProgressFilesConfig, validateRunRatioConfig, validateScheduledTasksConfig, validateScopeGateConfig, validateSharedEditingConfig, validateSkillEvalsConfig, validateStarlightSingleton, validateUnblockDependentsConfig, vitestBundle };
package/lib/index.d.ts CHANGED
@@ -2282,6 +2282,43 @@ interface SkillEvalsConfig {
2282
2282
  */
2283
2283
  readonly emitRunner?: boolean;
2284
2284
  }
2285
+ /*******************************************************************************
2286
+ *
2287
+ * Upstream Configulator Docs Config
2288
+ *
2289
+ ******************************************************************************/
2290
+ /**
2291
+ * Upstream-configulator-docs convention consumed by the
2292
+ * `upstream-configulator-docs` bundle. The bundle ships a top-level
2293
+ * CLAUDE.md reminder plus a `.claude/rules/` detail file that point
2294
+ * downstream agents at the upstream `codedrifters/packages` repo: where
2295
+ * configulator's docs live, how to read them via `gh api` /
2296
+ * `gh search code`, and how to file upstream issues for missing
2297
+ * features instead of working around them with downstream rule
2298
+ * overrides.
2299
+ *
2300
+ * Every field is optional. When the whole config is absent the
2301
+ * convention ships **enabled** so every consumer of
2302
+ * `@codedrifters/configulator` carries the upstream pointers by
2303
+ * default.
2304
+ *
2305
+ * Non-CodeDrifters consumers — repos that depend on configulator but
2306
+ * do not want to point downstream agents at this upstream — set
2307
+ * `enabled: false` to drop the bundle's rules entirely.
2308
+ *
2309
+ * @see ./bundles/upstream-configulator-docs.ts
2310
+ */
2311
+ interface UpstreamConfigulatorConfig {
2312
+ /**
2313
+ * Master switch for the upstream-configulator-docs convention. When
2314
+ * `false`, `AgentConfig.resolveRules` filters out every rule whose
2315
+ * name starts with `upstream-configulator-docs`, so the bundle
2316
+ * contributes nothing to CLAUDE.md or `.claude/rules/`.
2317
+ *
2318
+ * Defaults to `true` — the convention is on by default.
2319
+ */
2320
+ readonly enabled?: boolean;
2321
+ }
2285
2322
  /*******************************************************************************
2286
2323
  *
2287
2324
  * Issue Templates Config
@@ -3046,6 +3083,26 @@ interface AgentConfigOptions {
3046
3083
  * @see ./bundles/issue-templates.ts#renderIssueTemplatesRuleContent
3047
3084
  */
3048
3085
  readonly issueTemplates?: IssueTemplatesConfig;
3086
+ /**
3087
+ * Upstream-configulator-docs convention consumed by the
3088
+ * `upstream-configulator-docs` bundle. Ships pointers to the
3089
+ * upstream `codedrifters/packages` repo so downstream agents know
3090
+ * where configulator's docs live, how to read them, and how to file
3091
+ * upstream issues for missing features instead of papering over
3092
+ * gaps with downstream rule overrides.
3093
+ *
3094
+ * When the whole config is omitted, the convention ships
3095
+ * **enabled** by default.
3096
+ *
3097
+ * Supply `enabled: false` to drop the bundle's rules entirely —
3098
+ * appropriate for non-CodeDrifters consumers that depend on
3099
+ * configulator but do not want to point downstream agents at the
3100
+ * upstream repo.
3101
+ *
3102
+ * @see UpstreamConfigulatorConfig
3103
+ * @see ./bundles/upstream-configulator-docs.ts
3104
+ */
3105
+ readonly upstreamConfigulator?: UpstreamConfigulatorConfig;
3049
3106
  }
3050
3107
 
3051
3108
  /**
@@ -5311,6 +5368,38 @@ declare const turborepoBundle: AgentRuleBundle;
5311
5368
  */
5312
5369
  declare const typescriptBundle: AgentRuleBundle;
5313
5370
 
5371
+ /**
5372
+ * Default master switch for the upstream-configulator-docs convention.
5373
+ * When no config is supplied, the convention ships **enabled** so every
5374
+ * project that consumes `@codedrifters/configulator` carries guidance on
5375
+ * how to read configulator's upstream docs and how to file feature
5376
+ * requests against `codedrifters/packages` instead of working around
5377
+ * gaps in downstream rule overrides.
5378
+ *
5379
+ * Non-CodeDrifters consumers that do not want to point downstream agents
5380
+ * at the `codedrifters/packages` repo can opt out by setting
5381
+ * `AgentConfigOptions.upstreamConfigulator.enabled = false`.
5382
+ *
5383
+ * @see UpstreamConfigulatorConfig
5384
+ */
5385
+ declare const DEFAULT_UPSTREAM_CONFIGULATOR_ENABLED = true;
5386
+ /**
5387
+ * Upstream-configulator-docs bundle — always-on by default. Ships two
5388
+ * rules: an `ALWAYS`-scoped rule that renders into CLAUDE.md as a
5389
+ * top-level reminder that the project consumes
5390
+ * `@codedrifters/configulator` and where its upstream docs live, plus a
5391
+ * `FILE_PATTERN`-scoped detail rule that renders into
5392
+ * `.claude/rules/upstream-configulator-docs-detail.md` for agents
5393
+ * working on configulator-aware files.
5394
+ *
5395
+ * The bundle is gated by `AgentConfigOptions.upstreamConfigulator.enabled`
5396
+ * (default `true`). When the consumer flips it to `false`,
5397
+ * `AgentConfig.resolveRules` drops every rule whose name starts with
5398
+ * `upstream-configulator-docs` so non-CodeDrifters consumers that do
5399
+ * not want the upstream-pointer guidance opt out cleanly.
5400
+ */
5401
+ declare const upstreamConfigulatorDocsBundle: AgentRuleBundle;
5402
+
5314
5403
  /**
5315
5404
  * Vitest bundle — auto-detected when the Vitest component is present.
5316
5405
  */
@@ -9295,5 +9384,5 @@ declare const COMPLETE_JOB_ID = "complete";
9295
9384
  */
9296
9385
  declare function addBuildCompleteJob(buildWorkflow: BuildWorkflow): void;
9297
9386
 
9298
- 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, createApiDiffCheck, createReferenceMismatchCheck, createTsdocCoverageCheck, customerProfileBundle, diffApiRollups, docsSyncBundle, emptyCategoryBuckets, extractApiProcedure, extractDocReferences, extractFencedSamples, formatLayoutViolation, formatStarlightSingletonViolation, getLatestEligibleVersion, githubWorkflowBundle, industryDiscoveryBundle, jestBundle, maintenanceAuditBundle, meetingAnalysisBundle, orchestratorBundle, parseApiRollup, peopleProfileBundle, persistAuditReport, pnpmBundle, prReviewBundle, projenBundle, referenceRecordToFinding, 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, tsdocRecordToFindings, turborepoBundle, typescriptBundle, validateAgentTierConfig, validateIssueTemplatesConfig, validateMonorepoLayout, validatePreflightPrConfig, validateProgressFilesConfig, validateRunRatioConfig, validateScheduledTasksConfig, validateScopeGateConfig, validateSharedEditingConfig, validateSkillEvalsConfig, validateStarlightSingleton, validateUnblockDependentsConfig, vitestBundle };
9299
- export type { AgentConfigOptions, AgentExpansionRules, AgentFeaturesConfig, AgentModel, AgentPathsConfig, AgentPlatform, AgentPlatformOverrides, AgentProcedure, AgentRule, AgentRuleBundle, AgentRuleScope, AgentSkill, AgentSubAgent, AgentSubAgentPlatformOverrides, AgentTier, AgentTierConfig, AgentTierEntry, AnalyzeTsDocCoverageOptions, ApiDiffCheckOptions, ApiDiffFinding, ApiDiffResult, ApiExtractorOptions, ApiExtractorReportOptions, ApiSurfaceEntry, 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, ReferenceMismatchCheckOptions, 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, TsdocCoverageCheckOptions, TsdocCoverageFinding, TurboRepoOptions, TurboRepoTaskOptions, TypeScriptProjectOptions, UnblockDependentsConfig, VersionKey, VitestConfigOptions, VitestOptions };
9387
+ 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, DEFAULT_UPSTREAM_CONFIGULATOR_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, createApiDiffCheck, createReferenceMismatchCheck, createTsdocCoverageCheck, customerProfileBundle, diffApiRollups, docsSyncBundle, emptyCategoryBuckets, extractApiProcedure, extractDocReferences, extractFencedSamples, formatLayoutViolation, formatStarlightSingletonViolation, getLatestEligibleVersion, githubWorkflowBundle, industryDiscoveryBundle, jestBundle, maintenanceAuditBundle, meetingAnalysisBundle, orchestratorBundle, parseApiRollup, peopleProfileBundle, persistAuditReport, pnpmBundle, prReviewBundle, projenBundle, referenceRecordToFinding, 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, tsdocRecordToFindings, turborepoBundle, typescriptBundle, upstreamConfigulatorDocsBundle, validateAgentTierConfig, validateIssueTemplatesConfig, validateMonorepoLayout, validatePreflightPrConfig, validateProgressFilesConfig, validateRunRatioConfig, validateScheduledTasksConfig, validateScopeGateConfig, validateSharedEditingConfig, validateSkillEvalsConfig, validateStarlightSingleton, validateUnblockDependentsConfig, vitestBundle };
9388
+ export type { AgentConfigOptions, AgentExpansionRules, AgentFeaturesConfig, AgentModel, AgentPathsConfig, AgentPlatform, AgentPlatformOverrides, AgentProcedure, AgentRule, AgentRuleBundle, AgentRuleScope, AgentSkill, AgentSubAgent, AgentSubAgentPlatformOverrides, AgentTier, AgentTierConfig, AgentTierEntry, AnalyzeTsDocCoverageOptions, ApiDiffCheckOptions, ApiDiffFinding, ApiDiffResult, ApiExtractorOptions, ApiExtractorReportOptions, ApiSurfaceEntry, 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, ReferenceMismatchCheckOptions, 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, TsdocCoverageCheckOptions, TsdocCoverageFinding, TurboRepoOptions, TurboRepoTaskOptions, TypeScriptProjectOptions, UnblockDependentsConfig, UpstreamConfigulatorConfig, VersionKey, VitestConfigOptions, VitestOptions };
package/lib/index.js CHANGED
@@ -246,6 +246,7 @@ __export(index_exports, {
246
246
  DEFAULT_TYPE_LABELS: () => DEFAULT_TYPE_LABELS,
247
247
  DEFAULT_UNBLOCK_COMMENT_TEMPLATE: () => DEFAULT_UNBLOCK_COMMENT_TEMPLATE,
248
248
  DEFAULT_UNBLOCK_DEPENDENTS_ENABLED: () => DEFAULT_UNBLOCK_DEPENDENTS_ENABLED,
249
+ DEFAULT_UPSTREAM_CONFIGULATOR_ENABLED: () => DEFAULT_UPSTREAM_CONFIGULATOR_ENABLED,
249
250
  DOCS_SYNC_AUDIT_SCHEMA_VERSION: () => DOCS_SYNC_AUDIT_SCHEMA_VERSION,
250
251
  JsiiFaker: () => JsiiFaker,
251
252
  LAYOUT_ENFORCEMENT: () => LAYOUT_ENFORCEMENT,
@@ -412,6 +413,7 @@ __export(index_exports, {
412
413
  tsdocRecordToFindings: () => tsdocRecordToFindings,
413
414
  turborepoBundle: () => turborepoBundle,
414
415
  typescriptBundle: () => typescriptBundle,
416
+ upstreamConfigulatorDocsBundle: () => upstreamConfigulatorDocsBundle,
415
417
  validateAgentTierConfig: () => validateAgentTierConfig,
416
418
  validateIssueTemplatesConfig: () => validateIssueTemplatesConfig,
417
419
  validateMonorepoLayout: () => validateMonorepoLayout,
@@ -1680,10 +1682,14 @@ function renderIssueTemplatesCheckerScript(it) {
1680
1682
  "# that includes a `--title` flag on a subsequent line. Single-line",
1681
1683
  "# fragments and prose mentions are permitted.",
1682
1684
  "#",
1683
- "# Two paths are allow-listed: the templates page itself, and the",
1684
- "# `github-workflow` bundle's `create-issue-workflow` rule source",
1685
- "# (which documents the conventional call shape as taxonomy, not a",
1686
- "# downstream template).",
1685
+ "# Five paths are allow-listed: the templates page itself, the",
1686
+ "# `github-workflow` bundle's `create-issue-workflow` rule source,",
1687
+ "# the `upstream-configulator-docs` bundle's rule source, the",
1688
+ "# `issue-templates` bundle source (which renders the templates",
1689
+ "# page and so necessarily embeds the recipes as its content), and",
1690
+ "# the `issue-templates` test source (which contains recipe fixtures",
1691
+ "# used to exercise this very lint). All five legitimately contain",
1692
+ "# `gh issue create` recipes as taxonomy, content, or test fixtures.",
1687
1693
  "#",
1688
1694
  "# The bundle-path patterns and templates path are rendered from the",
1689
1695
  "# consumer's IssueTemplatesConfig at synth time \u2014 do not edit by",
@@ -1704,12 +1710,16 @@ function renderIssueTemplatesCheckerScript(it) {
1704
1710
  "",
1705
1711
  `templates_path=${JSON.stringify(it.templatesPath)}`,
1706
1712
  "",
1707
- "# Allow-listed paths: the templates page itself and the",
1708
- "# create-issue-workflow rule source (both legitimately contain",
1709
- "# `gh issue create` recipes).",
1713
+ "# Allow-listed paths: the templates page itself, the",
1714
+ "# create-issue-workflow rule source, the upstream-configulator-docs",
1715
+ "# rule source, and the issue-templates bundle source + test (which",
1716
+ "# render and exercise the lint and so necessarily embed recipes).",
1710
1717
  "allowlist=(",
1711
1718
  ` "$templates_path"`,
1712
1719
  ' "packages/@codedrifters/configulator/src/agent/bundles/github-workflow.ts"',
1720
+ ' "packages/@codedrifters/configulator/src/agent/bundles/upstream-configulator-docs.ts"',
1721
+ ' "packages/@codedrifters/configulator/src/agent/bundles/issue-templates.ts"',
1722
+ ' "packages/@codedrifters/configulator/src/agent/bundles/issue-templates.test.ts"',
1713
1723
  ")",
1714
1724
  "",
1715
1725
  "# Bundle-path glob patterns. Translated to anchored POSIX-extended",
@@ -26163,6 +26173,223 @@ var typescriptBundle = {
26163
26173
  }
26164
26174
  };
26165
26175
 
26176
+ // src/agent/bundles/upstream-configulator-docs.ts
26177
+ var DEFAULT_UPSTREAM_CONFIGULATOR_ENABLED = true;
26178
+ var UPSTREAM_CONFIGULATOR_DOCS_SUMMARY = [
26179
+ "# Upstream Configulator Docs",
26180
+ "",
26181
+ "This project consumes `@codedrifters/configulator` from the upstream repository **`codedrifters/packages`**. When you need to understand a configulator behaviour, project type, bundle, or rule, read the upstream docs first \u2014 the configulator package in this checkout is generated, not authoritative.",
26182
+ "",
26183
+ "## Where the docs live",
26184
+ "",
26185
+ "- **Repository:** `codedrifters/packages`",
26186
+ "- **Docs root:** `docs/src/content/docs/`",
26187
+ "- **Canonical absolute base URL:**",
26188
+ " <https://github.com/codedrifters/packages/tree/main/docs/src/content/docs/>",
26189
+ "",
26190
+ "Always link to upstream docs from this repo's CLAUDE.md or `.claude/rules/` using **absolute** GitHub URLs \u2014 relative links only work inside a single repo's tree, not across repos.",
26191
+ "",
26192
+ "## Reading the docs without cloning",
26193
+ "",
26194
+ "Use the `gh` CLI to read upstream docs from inside this checkout \u2014 no clone of `codedrifters/packages` required:",
26195
+ "",
26196
+ "```sh",
26197
+ "# Read one doc by path:",
26198
+ "gh api repos/codedrifters/packages/contents/docs/src/content/docs/<path> \\",
26199
+ " --jq '.content' | base64 -d",
26200
+ "",
26201
+ "# List a docs directory:",
26202
+ "gh api repos/codedrifters/packages/contents/docs/src/content/docs/<dir> \\",
26203
+ " --jq '.[].path'",
26204
+ "",
26205
+ "# Search docs by keyword:",
26206
+ "gh search code --repo codedrifters/packages --filename '*.md' '<query>'",
26207
+ "```",
26208
+ "",
26209
+ "The Contents API returns base64-encoded payloads \u2014 `--jq '.content' | base64 -d` is the canonical decode recipe.",
26210
+ "",
26211
+ "## Upstream-issue-first preference",
26212
+ "",
26213
+ "When configulator is missing a feature, surfaces a bug, or behaves wrong, **file an issue against `codedrifters/packages`** rather than patching around it locally. Manual downstream overrides in `agentConfig.rules` or `agentConfig.ruleExtensions` are a last resort, not a first response \u2014 they fork divergence into every consumer that hits the same gap.",
26214
+ "",
26215
+ "Use the conventional issue recipe (mirrors the `Create Issue Workflow` in this project's CLAUDE.md):",
26216
+ "",
26217
+ "```sh",
26218
+ "gh issue create --repo codedrifters/packages \\",
26219
+ " --title 'feat: <short description>' \\",
26220
+ " --label 'type:feat' \\",
26221
+ " --label 'priority:medium' \\",
26222
+ " --label 'status:ready' \\",
26223
+ " --body $'## Summary\\n\\n<1-3 sentences>\\n\\n## Details\\n\\n<context, acceptance criteria, or repro steps>'",
26224
+ "```",
26225
+ "",
26226
+ "Pick the `type:*` and matching prefix that describes the work (`feat:`, `fix:`, `chore:`, `docs:`, `refactor:`). Set `priority:*` from the urgency and use `status:blocked` instead of `status:ready` if the issue depends on another open issue.",
26227
+ "",
26228
+ "See `.claude/rules/upstream-configulator-docs-detail.md` for the full reference \u2014 extended `gh` recipes, common pitfalls (rate limits, base64 decoding, search vs. browse), and a complete issue-creation walkthrough."
26229
+ ].join("\n");
26230
+ var UPSTREAM_CONFIGULATOR_DOCS_DETAIL = [
26231
+ "# Upstream Configulator Docs \u2014 Detail",
26232
+ "",
26233
+ "This project depends on `@codedrifters/configulator` for its Projen project types, agent bundles, and generated rules. Configulator itself is developed in the upstream repository **`codedrifters/packages`** \u2014 the source of record for project-type defaults, bundle behaviour, rule content, and the agent-config schema.",
26234
+ "",
26235
+ "When you are editing `.projenrc.ts`, `projenrc/**`, `.claude/**`, or `CLAUDE.md` and need to confirm how a configulator feature works, **read the upstream docs before editing**. Generated files in this checkout are not authoritative; the upstream markdown is.",
26236
+ "",
26237
+ "## 1. Where configulator's docs live",
26238
+ "",
26239
+ "- **Upstream repo:** `codedrifters/packages`",
26240
+ "- **Docs root inside the repo:** `docs/src/content/docs/`",
26241
+ "- **Canonical absolute base URL:**",
26242
+ " <https://github.com/codedrifters/packages/tree/main/docs/src/content/docs/>",
26243
+ "",
26244
+ "Always cite upstream docs with **absolute** `https://github.com/codedrifters/packages/...` URLs when linking from this consumer's CLAUDE.md or `.claude/rules/`. Relative `../docs/...` links only resolve inside a single repo's tree \u2014 they break the moment a downstream agent loads the rule from a different checkout.",
26245
+ "",
26246
+ "Common doc subtrees (browse the canonical base above for the live tree):",
26247
+ "",
26248
+ "- `docs/src/content/docs/agents/` \u2014 agent bundles, phase contracts, issue templates",
26249
+ "- `docs/src/content/docs/components/` \u2014 Projen components and project types",
26250
+ "- `docs/src/content/docs/requirements/` \u2014 requirement documents and ADRs",
26251
+ "",
26252
+ "## 2. Reading the docs via the GitHub API",
26253
+ "",
26254
+ "Use `gh` to fetch upstream docs without cloning `codedrifters/packages`. The recipes below run from inside any consumer's checkout.",
26255
+ "",
26256
+ "### Browse a single doc by path",
26257
+ "",
26258
+ "```sh",
26259
+ "gh api repos/codedrifters/packages/contents/docs/src/content/docs/<path> \\",
26260
+ " --jq '.content' | base64 -d",
26261
+ "```",
26262
+ "",
26263
+ 'The GitHub Contents API returns `{ content: "<base64>", encoding: "base64", ... }`. The `--jq \'.content\'` filter strips the JSON envelope and `base64 -d` decodes the payload to plain Markdown. On macOS the decode flag is `base64 -D` on older `base64` versions \u2014 use `base64 -d` (lowercase) on the GNU coreutils install that ships with most modern dev environments.',
26264
+ "",
26265
+ "Example \u2014 fetch the agent issue-templates page:",
26266
+ "",
26267
+ "```sh",
26268
+ "gh api repos/codedrifters/packages/contents/docs/src/content/docs/agents/issue-templates.md \\",
26269
+ " --jq '.content' | base64 -d",
26270
+ "```",
26271
+ "",
26272
+ "### List a docs directory",
26273
+ "",
26274
+ "```sh",
26275
+ "gh api repos/codedrifters/packages/contents/docs/src/content/docs/<dir> \\",
26276
+ " --jq '.[].path'",
26277
+ "```",
26278
+ "",
26279
+ "Lists the immediate children (files and subdirectories) of `<dir>`. Use this to discover what's inside an agents/ or components/ subtree before browsing individual files.",
26280
+ "",
26281
+ "### Search docs by keyword",
26282
+ "",
26283
+ "```sh",
26284
+ "gh search code --repo codedrifters/packages --filename '*.md' '<query>'",
26285
+ "```",
26286
+ "",
26287
+ "`gh search code` hits the GitHub code-search index and is the right tool when you don't know which file to read. Scope by `--filename '*.md'` to keep results to documentation. Scope further with `--path 'docs/src/content/docs/<subtree>'` when you only care about one section.",
26288
+ "",
26289
+ "### Common pitfalls",
26290
+ "",
26291
+ "- **Forgot to base64-decode.** The Contents API never returns plain text \u2014 without `base64 -d` you get a base64 blob, not Markdown. Pipe through `base64 -d` every time.",
26292
+ "- **Rate limits.** Unauthenticated `gh` calls share a tight per-IP quota. Authenticate with `gh auth login` before running these recipes; an authenticated token gets a 5,000-request hourly quota that is more than enough for interactive doc browsing.",
26293
+ "- **Search vs. browse.** `gh search code` is best when you don't know the path. `gh api .../contents/...` is best when you do. Don't search for a path you already know \u2014 it's slower and the search index can lag behind the live file by a few minutes.",
26294
+ "- **Branch defaults.** All recipes default to the repo's default branch (`main`). To read a doc from a feature branch, append `?ref=<branch>` to the contents-API path: `gh api 'repos/codedrifters/packages/contents/<path>?ref=<branch>' --jq '.content' | base64 -d`.",
26295
+ "- **Large directories.** `gh api .../contents/<dir>` truncates responses over 1,000 entries. The `docs/src/content/docs/` subtrees are well under that limit today, but if you ever hit truncation, fall back to the Git Trees API: `gh api repos/codedrifters/packages/git/trees/main?recursive=1 --jq '.tree[] | select(.path | startswith(\"docs/src/content/docs/\")) | .path'`.",
26296
+ "",
26297
+ "## 3. Upstream-issue-first preference",
26298
+ "",
26299
+ "Configulator's rules, bundles, project types, and agent contracts ship for every consumer of the package. When you find a gap or a bug, the right fix is almost always upstream \u2014 patching around it locally forks divergence into this consumer and silently denies every other consumer the fix.",
26300
+ "",
26301
+ "**Default policy:** file an issue against `codedrifters/packages`. Reach for `agentConfig.rules` (new local rule) or `agentConfig.ruleExtensions` (append to a bundle rule) only when the upstream change is non-trivial and you need to unblock immediate work.",
26302
+ "",
26303
+ "### Canonical issue-creation recipe",
26304
+ "",
26305
+ "The recipe mirrors the `Create Issue Workflow` documented in this project's CLAUDE.md \u2014 same conventional-prefix titles, same `type:*` / `priority:*` / `status:*` label set, same body template \u2014 with `--repo codedrifters/packages` so it works from inside any consumer's checkout:",
26306
+ "",
26307
+ "```sh",
26308
+ "gh issue create --repo codedrifters/packages \\",
26309
+ " --title '<type>: <short description>' \\",
26310
+ " --label '<type-label>' \\",
26311
+ " --label '<priority-label>' \\",
26312
+ " --label '<status-label>' \\",
26313
+ " --body $'## Summary\\n\\n<1-3 sentences describing the issue>\\n\\n## Details\\n\\n<acceptance criteria, repro steps, or context>'",
26314
+ "```",
26315
+ "",
26316
+ "### Title prefix \u2192 type label",
26317
+ "",
26318
+ "Pick exactly one matching pair:",
26319
+ "",
26320
+ "| Title prefix | `type:*` label | Use for |",
26321
+ "|--------------|----------------|---------|",
26322
+ "| `feat:` | `type:feat` | New features or functionality |",
26323
+ "| `fix:` | `type:fix` | Bug fixes |",
26324
+ "| `chore:` | `type:chore` | Maintenance: deps, tooling, config |",
26325
+ "| `docs:` | `type:docs` | Documentation-only work |",
26326
+ "| `refactor:` | `type:refactor` | Code restructure, no behavior change |",
26327
+ "| `release:` | `type:release` | Release preparation, version bumps |",
26328
+ "| `hotfix:` | `type:hotfix` | Urgent production fixes |",
26329
+ "| `epic:` | `type:feat` | Large initiatives spanning multiple child issues |",
26330
+ "",
26331
+ "### Priority and status labels",
26332
+ "",
26333
+ "- `priority:*` \u2014 pick exactly one of `priority:critical`, `priority:high`, `priority:medium`, `priority:low`, `priority:trivial`. Default to `priority:medium` when nothing in the request signals urgency. Use `priority:high` for blockers and `priority:critical` only for outages or release-blocking work.",
26334
+ "- `status:*` \u2014 `status:ready` for self-contained issues, `status:blocked` when the issue declares `Depends on: #<n>` against another open issue.",
26335
+ "",
26336
+ "### Worked example",
26337
+ "",
26338
+ "Suppose configulator's `software-profile-analyst` agent prompt is missing a step you need. Instead of forking the prompt locally:",
26339
+ "",
26340
+ "```sh",
26341
+ "gh issue create --repo codedrifters/packages \\",
26342
+ " --title 'feat: software-profile-analyst should record vendor pricing tier' \\",
26343
+ " --label 'type:feat' \\",
26344
+ " --label 'priority:medium' \\",
26345
+ " --label 'status:ready' \\",
26346
+ " --body $'## Summary\\n\\nThe `software-profile-analyst` Phase 2 prompt does not capture the vendor pricing tier (free / paid / enterprise), which downstream consumers need for segment matching.\\n\\n## Details\\n\\n- Add a `Pricing tier` field to the profile template at `docs/src/content/docs/agents/software-profile-analyst.md`\\n- Update the Phase 2 instructions to require the field before commit\\n- Add a regression test in `bundles.test.ts`'",
26347
+ "```",
26348
+ "",
26349
+ "After filing, reference the upstream issue from any local workaround so it can be reverted once the upstream fix lands:",
26350
+ "",
26351
+ "```typescript",
26352
+ "// TODO(codedrifters/packages#<N>): remove this override once upstream lands the fix.",
26353
+ "agentConfig: {",
26354
+ " ruleExtensions: {",
26355
+ " 'software-profile-analyst': '## Local override\\n\\n- Capture pricing tier...',",
26356
+ " },",
26357
+ "}",
26358
+ "```",
26359
+ "",
26360
+ "### When a local override is the right call",
26361
+ "",
26362
+ "Reach for `agentConfig.rules` or `agentConfig.ruleExtensions` only when **all** of the following hold:",
26363
+ "",
26364
+ "- The need is genuinely consumer-specific (not a gap that affects every configulator user).",
26365
+ "- An upstream fix would take longer than you can wait, **and** you have already filed the upstream issue with a `TODO(codedrifters/packages#<N>)` reference in the local override.",
26366
+ "- The override is small enough that diverging from upstream for a few days is cheaper than blocking on the upstream change.",
26367
+ "",
26368
+ "Anything that fails one of those tests belongs upstream first. The `# Reference Documentation` rule in this project's CLAUDE.md says it explicitly: trust the project sources and ask for clarification \u2014 that protocol extends across repo boundaries to `codedrifters/packages` for anything configulator owns."
26369
+ ].join("\n");
26370
+ var upstreamConfigulatorDocsBundle = {
26371
+ name: "upstream-configulator-docs",
26372
+ description: "Pointers to @codedrifters/configulator's upstream docs and the upstream-issue protocol for missing features. Gated by AgentConfigOptions.upstreamConfigulator.enabled (default true).",
26373
+ appliesWhen: () => true,
26374
+ rules: [
26375
+ {
26376
+ name: "upstream-configulator-docs",
26377
+ description: "Top-level reminder that the project consumes @codedrifters/configulator and where the upstream docs live",
26378
+ scope: AGENT_RULE_SCOPE.ALWAYS,
26379
+ content: UPSTREAM_CONFIGULATOR_DOCS_SUMMARY,
26380
+ tags: ["project"]
26381
+ },
26382
+ {
26383
+ name: "upstream-configulator-docs-detail",
26384
+ description: "Detailed protocol for reading @codedrifters/configulator upstream docs and filing upstream issues",
26385
+ scope: AGENT_RULE_SCOPE.FILE_PATTERN,
26386
+ filePatterns: [".projenrc.ts", "projenrc/**", ".claude/**", "CLAUDE.md"],
26387
+ content: UPSTREAM_CONFIGULATOR_DOCS_DETAIL,
26388
+ tags: ["project"]
26389
+ }
26390
+ ]
26391
+ };
26392
+
26166
26393
  // src/vitest/vitest-component.ts
26167
26394
  var import_projen3 = require("projen");
26168
26395
  var import_javascript2 = require("projen/lib/javascript");
@@ -26764,6 +26991,7 @@ function renderPriorityRulesSection(rules) {
26764
26991
  function buildBuiltInBundles(paths = DEFAULT_AGENT_PATHS) {
26765
26992
  return [
26766
26993
  buildBaseBundle(paths),
26994
+ upstreamConfigulatorDocsBundle,
26767
26995
  typescriptBundle,
26768
26996
  vitestBundle,
26769
26997
  jestBundle,
@@ -28087,6 +28315,13 @@ ${hook}`
28087
28315
  } else {
28088
28316
  ruleMap.delete("source-quality-verification");
28089
28317
  }
28318
+ if (this.options.upstreamConfigulator?.enabled === false) {
28319
+ for (const ruleName of [...ruleMap.keys()]) {
28320
+ if (ruleName.startsWith("upstream-configulator-docs")) {
28321
+ ruleMap.delete(ruleName);
28322
+ }
28323
+ }
28324
+ }
28090
28325
  return [...ruleMap.values()].sort((a, b) => {
28091
28326
  if (a.name === "project-overview") return -1;
28092
28327
  if (b.name === "project-overview") return 1;
@@ -32582,6 +32817,7 @@ var TypeScriptConfig = class extends import_projen23.Component {
32582
32817
  DEFAULT_TYPE_LABELS,
32583
32818
  DEFAULT_UNBLOCK_COMMENT_TEMPLATE,
32584
32819
  DEFAULT_UNBLOCK_DEPENDENTS_ENABLED,
32820
+ DEFAULT_UPSTREAM_CONFIGULATOR_ENABLED,
32585
32821
  DOCS_SYNC_AUDIT_SCHEMA_VERSION,
32586
32822
  JsiiFaker,
32587
32823
  LAYOUT_ENFORCEMENT,
@@ -32748,6 +32984,7 @@ var TypeScriptConfig = class extends import_projen23.Component {
32748
32984
  tsdocRecordToFindings,
32749
32985
  turborepoBundle,
32750
32986
  typescriptBundle,
32987
+ upstreamConfigulatorDocsBundle,
32751
32988
  validateAgentTierConfig,
32752
32989
  validateIssueTemplatesConfig,
32753
32990
  validateMonorepoLayout,