pumuki 6.3.7
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/LICENSE +21 -0
- package/README.md +370 -0
- package/VERSION +1 -0
- package/assets/Hook_01.png +0 -0
- package/assets/Hook_02.png +0 -0
- package/assets/ai-start.png +0 -0
- package/assets/ai_gate.png +0 -0
- package/assets/ast_intelligence_01.png +0 -0
- package/assets/ast_intelligence_01.svg +40 -0
- package/assets/ast_intelligence_02.png +0 -0
- package/assets/ast_intelligence_02.svg +39 -0
- package/assets/ast_intelligence_03.png +0 -0
- package/assets/ast_intelligence_03.svg +55 -0
- package/assets/ast_intelligence_04.png +0 -0
- package/assets/ast_intelligence_04.svg +39 -0
- package/assets/ast_intelligence_05.png +0 -0
- package/assets/ast_intelligence_05.svg +45 -0
- package/assets/logo.png +0 -0
- package/assets/logo_banner.svg +29 -0
- package/assets/pre-flight-check.png +0 -0
- package/bin/_run-ts-entry.js +46 -0
- package/bin/pumuki-ci.js +5 -0
- package/bin/pumuki-framework.js +5 -0
- package/bin/pumuki-mcp-evidence.js +5 -0
- package/bin/pumuki-pre-commit.js +5 -0
- package/bin/pumuki-pre-push.js +5 -0
- package/bin/pumuki.js +5 -0
- package/core/facts/DependencyFact.test.ts +38 -0
- package/core/facts/DependencyFact.ts +6 -0
- package/core/facts/Fact.test.ts +74 -0
- package/core/facts/Fact.ts +10 -0
- package/core/facts/FactSet.test.ts +38 -0
- package/core/facts/FactSet.ts +3 -0
- package/core/facts/FileChangeFact.test.ts +36 -0
- package/core/facts/FileChangeFact.ts +5 -0
- package/core/facts/FileContentFact.test.ts +26 -0
- package/core/facts/FileContentFact.ts +5 -0
- package/core/facts/HeuristicFact.test.ts +34 -0
- package/core/facts/HeuristicFact.ts +10 -0
- package/core/facts/detectors/browser/index.test.ts +131 -0
- package/core/facts/detectors/browser/index.ts +67 -0
- package/core/facts/detectors/fs/callbacks.test.ts +73 -0
- package/core/facts/detectors/fs/callbacks.ts +93 -0
- package/core/facts/detectors/fs/promises.test.ts +88 -0
- package/core/facts/detectors/fs/promises.ts +75 -0
- package/core/facts/detectors/fs/sync.test.ts +48 -0
- package/core/facts/detectors/fs/sync.ts +3 -0
- package/core/facts/detectors/fs/syncPart1.test.ts +52 -0
- package/core/facts/detectors/fs/syncPart1.ts +3 -0
- package/core/facts/detectors/fs/syncPart1DirTimes.test.ts +58 -0
- package/core/facts/detectors/fs/syncPart1DirTimes.ts +93 -0
- package/core/facts/detectors/fs/syncPart1FileOps.test.ts +64 -0
- package/core/facts/detectors/fs/syncPart1FileOps.ts +93 -0
- package/core/facts/detectors/fs/syncPart1Metadata.test.ts +64 -0
- package/core/facts/detectors/fs/syncPart1Metadata.ts +139 -0
- package/core/facts/detectors/fs/syncPart2.test.ts +62 -0
- package/core/facts/detectors/fs/syncPart2.ts +4 -0
- package/core/facts/detectors/fs/syncPart2Core.test.ts +62 -0
- package/core/facts/detectors/fs/syncPart2Core.ts +70 -0
- package/core/facts/detectors/fs/syncPart2Io.test.ts +62 -0
- package/core/facts/detectors/fs/syncPart2Io.ts +70 -0
- package/core/facts/detectors/fs/syncPart2Permissions.test.ts +66 -0
- package/core/facts/detectors/fs/syncPart2Permissions.ts +93 -0
- package/core/facts/detectors/fs/syncPart2Times.test.ts +66 -0
- package/core/facts/detectors/fs/syncPart2Times.ts +93 -0
- package/core/facts/detectors/fs/syncPart3.test.ts +62 -0
- package/core/facts/detectors/fs/syncPart3.ts +3 -0
- package/core/facts/detectors/fs/syncPart3DescriptorIo.test.ts +69 -0
- package/core/facts/detectors/fs/syncPart3DescriptorIo.ts +93 -0
- package/core/facts/detectors/fs/syncPart3Links.test.ts +62 -0
- package/core/facts/detectors/fs/syncPart3Links.ts +70 -0
- package/core/facts/detectors/fs/syncPart3PathOps.test.ts +72 -0
- package/core/facts/detectors/fs/syncPart3PathOps.ts +116 -0
- package/core/facts/detectors/process/core.test.ts +147 -0
- package/core/facts/detectors/process/core.ts +120 -0
- package/core/facts/detectors/process/index.test.ts +61 -0
- package/core/facts/detectors/process/index.ts +3 -0
- package/core/facts/detectors/process/shell.test.ts +137 -0
- package/core/facts/detectors/process/shell.ts +170 -0
- package/core/facts/detectors/process/spawn.test.ts +155 -0
- package/core/facts/detectors/process/spawn.ts +121 -0
- package/core/facts/detectors/security/index.test.ts +382 -0
- package/core/facts/detectors/security/index.ts +16 -0
- package/core/facts/detectors/security/securityCredentials.test.ts +149 -0
- package/core/facts/detectors/security/securityCredentials.ts +192 -0
- package/core/facts/detectors/security/securityCrypto.test.ts +122 -0
- package/core/facts/detectors/security/securityCrypto.ts +88 -0
- package/core/facts/detectors/security/securityJwt.test.ts +187 -0
- package/core/facts/detectors/security/securityJwt.ts +134 -0
- package/core/facts/detectors/security/securityTls.test.ts +121 -0
- package/core/facts/detectors/security/securityTls.ts +88 -0
- package/core/facts/detectors/text/android.test.ts +87 -0
- package/core/facts/detectors/text/android.ts +38 -0
- package/core/facts/detectors/text/ios.test.ts +83 -0
- package/core/facts/detectors/text/ios.ts +108 -0
- package/core/facts/detectors/text/utils.test.ts +71 -0
- package/core/facts/detectors/text/utils.ts +146 -0
- package/core/facts/detectors/typescript/index.test.ts +231 -0
- package/core/facts/detectors/typescript/index.ts +167 -0
- package/core/facts/detectors/utils/astHelpers.test.ts +79 -0
- package/core/facts/detectors/utils/astHelpers.ts +33 -0
- package/core/facts/detectors/vm/index.test.ts +58 -0
- package/core/facts/detectors/vm/index.ts +27 -0
- package/core/facts/extractHeuristicFacts.ts +394 -0
- package/core/facts/index.test.ts +72 -0
- package/core/facts/index.ts +11 -0
- package/core/gate/Finding.test.ts +52 -0
- package/core/gate/Finding.ts +9 -0
- package/core/gate/GateOutcome.test.ts +20 -0
- package/core/gate/GateOutcome.ts +1 -0
- package/core/gate/GatePolicy.test.ts +28 -0
- package/core/gate/GatePolicy.ts +9 -0
- package/core/gate/GateStage.test.ts +22 -0
- package/core/gate/GateStage.ts +1 -0
- package/core/gate/conditionMatches.test.ts +110 -0
- package/core/gate/conditionMatches.ts +174 -0
- package/core/gate/evaluateGate.test.ts +77 -0
- package/core/gate/evaluateGate.ts +23 -0
- package/core/gate/evaluateRules.test.ts +106 -0
- package/core/gate/evaluateRules.ts +40 -0
- package/core/gate/index.test.ts +39 -0
- package/core/gate/index.ts +6 -0
- package/core/rules/Condition.test.ts +54 -0
- package/core/rules/Condition.ts +40 -0
- package/core/rules/Consequence.test.ts +25 -0
- package/core/rules/Consequence.ts +5 -0
- package/core/rules/README.md +6 -0
- package/core/rules/RuleDefinition.test.ts +55 -0
- package/core/rules/RuleDefinition.ts +20 -0
- package/core/rules/RuleSet.test.ts +48 -0
- package/core/rules/RuleSet.ts +3 -0
- package/core/rules/Severity.test.ts +19 -0
- package/core/rules/Severity.ts +12 -0
- package/core/rules/index.test.ts +41 -0
- package/core/rules/index.ts +7 -0
- package/core/rules/mergeRuleSets.ts +53 -0
- package/core/rules/presets/androidRuleSet.test.ts +22 -0
- package/core/rules/presets/androidRuleSet.ts +62 -0
- package/core/rules/presets/astHeuristicsRuleSet.ts +31 -0
- package/core/rules/presets/backendRuleSet.test.ts +27 -0
- package/core/rules/presets/backendRuleSet.ts +61 -0
- package/core/rules/presets/exampleRuleSet.test.ts +25 -0
- package/core/rules/presets/exampleRuleSet.ts +34 -0
- package/core/rules/presets/frontendRuleSet.test.ts +27 -0
- package/core/rules/presets/frontendRuleSet.ts +61 -0
- package/core/rules/presets/heuristics/android.ts +58 -0
- package/core/rules/presets/heuristics/browser.ts +58 -0
- package/core/rules/presets/heuristics/fsCallbacks.ts +9 -0
- package/core/rules/presets/heuristics/fsCallbacksFileOperationsRules.ts +400 -0
- package/core/rules/presets/heuristics/fsCallbacksMetadataRules.ts +418 -0
- package/core/rules/presets/heuristics/fsPromises.ts +9 -0
- package/core/rules/presets/heuristics/fsPromisesFileOperations.ts +184 -0
- package/core/rules/presets/heuristics/fsPromisesMetadataRules.ts +238 -0
- package/core/rules/presets/heuristics/fsSync.ts +13 -0
- package/core/rules/presets/heuristics/fsSyncAppendRules.ts +22 -0
- package/core/rules/presets/heuristics/fsSyncDescriptorRules.ts +328 -0
- package/core/rules/presets/heuristics/fsSyncFileOperationsRules.ts +382 -0
- package/core/rules/presets/heuristics/fsSyncPathRules.ts +4 -0
- package/core/rules/presets/heuristics/ios.ts +94 -0
- package/core/rules/presets/heuristics/process.ts +241 -0
- package/core/rules/presets/heuristics/security.ts +13 -0
- package/core/rules/presets/heuristics/securityCredentialsRules.ts +80 -0
- package/core/rules/presets/heuristics/securityCryptoRules.ts +61 -0
- package/core/rules/presets/heuristics/securityJwtRules.ts +61 -0
- package/core/rules/presets/heuristics/securityTlsRules.ts +42 -0
- package/core/rules/presets/heuristics/typescript.ts +220 -0
- package/core/rules/presets/heuristics/vm.ts +23 -0
- package/core/rules/presets/index.test.ts +32 -0
- package/core/rules/presets/index.ts +8 -0
- package/core/rules/presets/iosEnterpriseRuleSet.ts +204 -0
- package/core/rules/presets/iosNonNegotiableRuleSet.ts +76 -0
- package/core/rules/presets/rulePackVersions.test.ts +21 -0
- package/core/rules/presets/rulePackVersions.ts +11 -0
- package/core/utils/stableStringify.ts +18 -0
- package/docs/API_REFERENCE.md +233 -0
- package/docs/ARCHITECTURE.md +190 -0
- package/docs/ARCHITECTURE_DETAILED.md +165 -0
- package/docs/AST_HEURISTICS_REINTRODUCTION_PLAN.md +88 -0
- package/docs/BRANCH_PROTECTION_GUIDE.md +50 -0
- package/docs/CODE_STANDARDS.md +73 -0
- package/docs/CONFIGURATION.md +132 -0
- package/docs/CONTRIBUTING.md +92 -0
- package/docs/DEPENDENCIES.md +54 -0
- package/docs/HOW_IT_WORKS.md +155 -0
- package/docs/INSTALLATION.md +172 -0
- package/docs/MCP_AGENT_CONTEXT_CONSUMPTION.md +189 -0
- package/docs/MCP_EVIDENCE_CONTEXT_SERVER.md +242 -0
- package/docs/MCP_SERVERS.md +114 -0
- package/docs/README.md +85 -0
- package/docs/REFRACTOR_PROGRESS.md +155 -0
- package/docs/RELEASE_NOTES.md +175 -0
- package/docs/TESTING.md +101 -0
- package/docs/TODO.md +692 -0
- package/docs/USAGE.md +259 -0
- package/docs/evidence-v2.1.md +49 -0
- package/docs/images/README.md +20 -0
- package/docs/rule-packs/README.md +45 -0
- package/docs/rule-packs/android.md +21 -0
- package/docs/rule-packs/backend.md +24 -0
- package/docs/rule-packs/frontend.md +22 -0
- package/docs/rule-packs/heuristics.md +1304 -0
- package/docs/rule-packs/ios.md +22 -0
- package/docs/skills-repo-enforcement-migration.md +73 -0
- package/docs/validation/README.md +82 -0
- package/docs/validation/adapter-hook-runtime-local-report.md +45 -0
- package/docs/validation/adapter-hook-runtime-validation.md +82 -0
- package/docs/validation/adapter-real-session-report-template.md +63 -0
- package/docs/validation/consumer-ci-startup-failure-playbook.md +184 -0
- package/docs/validation/consumer-startup-escalation-handoff-latest.md +237 -0
- package/docs/validation/enterprise-consumer-isolation-policy.md +45 -0
- package/docs/validation/github-support-ticket-template-startup-failure.md +84 -0
- package/docs/validation/mock-consumer-integration-runbook.md +89 -0
- package/docs/validation/phase5-execution-closure.md +227 -0
- package/docs/validation/phase8-external-rollout-pack.md +168 -0
- package/docs/validation/phase8-post-billing-reactivation-runbook.md +133 -0
- package/docs/validation/skills-rollout-consumer-repositories.md +124 -0
- package/index.js +15 -0
- package/integrations/config/compileSkillsLock.ts +231 -0
- package/integrations/config/heuristics.ts +18 -0
- package/integrations/config/loadProjectRules.ts +43 -0
- package/integrations/config/projectRules.ts +6 -0
- package/integrations/config/projectRulesSchema.ts +85 -0
- package/integrations/config/skillsCompilerTemplates.ts +151 -0
- package/integrations/config/skillsLock.ts +248 -0
- package/integrations/config/skillsPolicy.ts +178 -0
- package/integrations/config/skillsRuleSet.ts +188 -0
- package/integrations/config/skillsSources.ts +88 -0
- package/integrations/evidence/buildEvidence.ts +350 -0
- package/integrations/evidence/generateEvidence.ts +14 -0
- package/integrations/evidence/humanIntent.ts +115 -0
- package/integrations/evidence/readEvidence.ts +47 -0
- package/integrations/evidence/schema.ts +97 -0
- package/integrations/evidence/writeEvidence.ts +201 -0
- package/integrations/gate/stagePolicies.ts +295 -0
- package/integrations/git/EvidenceService.ts +111 -0
- package/integrations/git/GitService.ts +35 -0
- package/integrations/git/baselineRuleSets.ts +58 -0
- package/integrations/git/ciAndroid.cli.ts +4 -0
- package/integrations/git/ciAndroid.ts +1 -0
- package/integrations/git/ciBackend.cli.ts +4 -0
- package/integrations/git/ciBackend.ts +1 -0
- package/integrations/git/ciFrontend.cli.ts +4 -0
- package/integrations/git/ciFrontend.ts +1 -0
- package/integrations/git/ciIOS.cli.ts +4 -0
- package/integrations/git/ciIOS.ts +1 -0
- package/integrations/git/evaluateStagedIOS.ts +127 -0
- package/integrations/git/getCommitRangeFacts.ts +28 -0
- package/integrations/git/gitDiffUtils.ts +90 -0
- package/integrations/git/index.ts +13 -0
- package/integrations/git/preCommitAndroid.cli.ts +4 -0
- package/integrations/git/preCommitAndroid.ts +1 -0
- package/integrations/git/preCommitBackend.cli.ts +4 -0
- package/integrations/git/preCommitBackend.ts +1 -0
- package/integrations/git/preCommitFrontend.cli.ts +4 -0
- package/integrations/git/preCommitFrontend.ts +1 -0
- package/integrations/git/preCommitIOS.cli.ts +4 -0
- package/integrations/git/preCommitIOS.ts +1 -0
- package/integrations/git/prePushAndroid.cli.ts +4 -0
- package/integrations/git/prePushAndroid.ts +1 -0
- package/integrations/git/prePushBackend.cli.ts +4 -0
- package/integrations/git/prePushBackend.ts +1 -0
- package/integrations/git/prePushFrontend.cli.ts +4 -0
- package/integrations/git/prePushFrontend.ts +1 -0
- package/integrations/git/prePushIOS.cli.ts +4 -0
- package/integrations/git/prePushIOS.ts +1 -0
- package/integrations/git/resolveGitRefs.ts +51 -0
- package/integrations/git/runCliCommand.ts +11 -0
- package/integrations/git/runPlatformGate.ts +89 -0
- package/integrations/git/runPlatformGateEvaluation.ts +82 -0
- package/integrations/git/runPlatformGateEvidence.ts +41 -0
- package/integrations/git/runPlatformGateFacts.ts +34 -0
- package/integrations/git/runPlatformGateOutput.ts +11 -0
- package/integrations/git/stageRunners.ts +40 -0
- package/integrations/lifecycle/artifacts.ts +26 -0
- package/integrations/lifecycle/cli.ts +180 -0
- package/integrations/lifecycle/constants.ts +13 -0
- package/integrations/lifecycle/consumerPackage.ts +48 -0
- package/integrations/lifecycle/doctor.ts +90 -0
- package/integrations/lifecycle/gitService.ts +63 -0
- package/integrations/lifecycle/hookBlock.ts +93 -0
- package/integrations/lifecycle/hookManager.ts +107 -0
- package/integrations/lifecycle/index.ts +6 -0
- package/integrations/lifecycle/install.ts +44 -0
- package/integrations/lifecycle/npmService.ts +21 -0
- package/integrations/lifecycle/packageInfo.ts +5 -0
- package/integrations/lifecycle/remove.ts +95 -0
- package/integrations/lifecycle/state.ts +41 -0
- package/integrations/lifecycle/status.ts +30 -0
- package/integrations/lifecycle/uninstall.ts +36 -0
- package/integrations/lifecycle/update.ts +77 -0
- package/integrations/mcp/evidenceContextServer.cli.ts +16 -0
- package/integrations/mcp/evidenceContextServer.ts +152 -0
- package/integrations/mcp/evidenceFacets.ts +3 -0
- package/integrations/mcp/evidenceFacetsBase.ts +94 -0
- package/integrations/mcp/evidenceFacetsSnapshot.ts +104 -0
- package/integrations/mcp/evidenceFacetsSuppressed.ts +3 -0
- package/integrations/mcp/evidenceFacetsSuppressedBase.ts +221 -0
- package/integrations/mcp/evidenceFacetsSuppressedRelations.ts +263 -0
- package/integrations/mcp/evidenceFacetsSuppressedShare.ts +2 -0
- package/integrations/mcp/evidenceFacetsSuppressedShareCore.ts +442 -0
- package/integrations/mcp/evidenceFacetsSuppressedShareTriage.ts +487 -0
- package/integrations/mcp/evidencePayloadCollections.ts +37 -0
- package/integrations/mcp/evidencePayloadCollectionsFindings.ts +64 -0
- package/integrations/mcp/evidencePayloadCollectionsLedger.ts +69 -0
- package/integrations/mcp/evidencePayloadCollectionsPaging.ts +38 -0
- package/integrations/mcp/evidencePayloadCollectionsPlatforms.ts +49 -0
- package/integrations/mcp/evidencePayloadCollectionsRulesets.ts +50 -0
- package/integrations/mcp/evidencePayloadCollectionsSorters.ts +62 -0
- package/integrations/mcp/evidencePayloadConfig.ts +79 -0
- package/integrations/mcp/evidencePayloadSummary.ts +144 -0
- package/integrations/mcp/evidencePayloadSummarySuppressed.ts +361 -0
- package/integrations/mcp/evidencePayloads.ts +8 -0
- package/integrations/mcp/index.ts +1 -0
- package/integrations/platform/detectAndroid.ts +25 -0
- package/integrations/platform/detectBackend.ts +22 -0
- package/integrations/platform/detectFrontend.ts +29 -0
- package/integrations/platform/detectPlatforms.ts +69 -0
- package/package.json +218 -0
- package/scripts/adapter-readiness-cli-lib.ts +64 -0
- package/scripts/adapter-readiness-contract.ts +46 -0
- package/scripts/adapter-readiness-lib.ts +10 -0
- package/scripts/adapter-readiness-markdown-lib.ts +41 -0
- package/scripts/adapter-readiness-markdown-next-actions-lib.ts +33 -0
- package/scripts/adapter-readiness-markdown-sections-lib.ts +78 -0
- package/scripts/adapter-readiness-parser-lib.ts +30 -0
- package/scripts/adapter-readiness-summary-lib.ts +62 -0
- package/scripts/adapter-real-session-analysis-evaluation-lib.ts +49 -0
- package/scripts/adapter-real-session-analysis-lib.ts +8 -0
- package/scripts/adapter-real-session-analysis-messages-lib.ts +58 -0
- package/scripts/adapter-real-session-analysis-signals-lib.ts +59 -0
- package/scripts/adapter-real-session-analysis-status-lib.ts +29 -0
- package/scripts/adapter-real-session-arg-values-lib.ts +47 -0
- package/scripts/adapter-real-session-args-lib.ts +46 -0
- package/scripts/adapter-real-session-audit-snapshot-lib.ts +70 -0
- package/scripts/adapter-real-session-context-lib.ts +7 -0
- package/scripts/adapter-real-session-contract.ts +54 -0
- package/scripts/adapter-real-session-fs-lib.ts +36 -0
- package/scripts/adapter-real-session-git-lib.ts +13 -0
- package/scripts/adapter-real-session-hook-config-lib.ts +24 -0
- package/scripts/adapter-real-session-markdown-core-sections-lib.ts +11 -0
- package/scripts/adapter-real-session-markdown-lib.ts +25 -0
- package/scripts/adapter-real-session-markdown-sections-context-lib.ts +56 -0
- package/scripts/adapter-real-session-markdown-sections-evaluation-lib.ts +71 -0
- package/scripts/adapter-real-session-markdown-sections-lib.ts +34 -0
- package/scripts/adapter-real-session-markdown-snippet-section-lib.ts +44 -0
- package/scripts/adapter-real-session-markdown-snippets-lib.ts +19 -0
- package/scripts/adapter-real-session-markdown-value-formatters-lib.ts +10 -0
- package/scripts/adapter-real-session-report-lib.ts +16 -0
- package/scripts/adapter-real-session-status-parser-lib.ts +42 -0
- package/scripts/adapter-session-status-args-lib.ts +46 -0
- package/scripts/adapter-session-status-audit-latest-lib.ts +22 -0
- package/scripts/adapter-session-status-audit-tail-entries-lib.ts +78 -0
- package/scripts/adapter-session-status-audit-tail-lib.ts +15 -0
- package/scripts/adapter-session-status-command-lib.ts +49 -0
- package/scripts/adapter-session-status-contract.ts +55 -0
- package/scripts/adapter-session-status-hook-log-filter-lib.ts +38 -0
- package/scripts/adapter-session-status-lib.ts +25 -0
- package/scripts/adapter-session-status-log-filter-lib.ts +3 -0
- package/scripts/adapter-session-status-log-utils-lib.ts +23 -0
- package/scripts/adapter-session-status-markdown-lib.ts +65 -0
- package/scripts/adapter-session-status-report-lib.ts +21 -0
- package/scripts/adapter-session-status-tail-readers-lib.ts +58 -0
- package/scripts/adapter-session-status-verdict-lib.ts +43 -0
- package/scripts/adapter-session-status-writes-log-filter-lib.ts +25 -0
- package/scripts/build-adapter-readiness.ts +51 -0
- package/scripts/build-adapter-real-session-report.ts +58 -0
- package/scripts/build-adapter-session-status.ts +42 -0
- package/scripts/build-consumer-startup-failure-support-bundle.ts +22 -0
- package/scripts/build-consumer-startup-triage-arg-flags-lib.ts +26 -0
- package/scripts/build-consumer-startup-triage-arg-values-lib.ts +45 -0
- package/scripts/build-consumer-startup-triage-args-lib.ts +59 -0
- package/scripts/build-consumer-startup-triage-contract.ts +25 -0
- package/scripts/build-consumer-startup-triage-runner-lib.ts +59 -0
- package/scripts/build-consumer-startup-triage.ts +58 -0
- package/scripts/build-consumer-startup-unblock-status.ts +34 -0
- package/scripts/build-consumer-support-ticket-draft.ts +32 -0
- package/scripts/build-mock-consumer-ab-report.ts +34 -0
- package/scripts/build-mock-consumer-startup-triage.ts +71 -0
- package/scripts/build-phase5-blockers-readiness.ts +69 -0
- package/scripts/build-phase5-execution-closure-status-output-lib.ts +22 -0
- package/scripts/build-phase5-execution-closure-status-runner-lib.ts +61 -0
- package/scripts/build-phase5-execution-closure-status.ts +35 -0
- package/scripts/build-phase5-external-handoff-arg-flags-lib.ts +21 -0
- package/scripts/build-phase5-external-handoff-arg-handlers-lib.ts +48 -0
- package/scripts/build-phase5-external-handoff-arg-values-lib.ts +59 -0
- package/scripts/build-phase5-external-handoff-args-lib.ts +25 -0
- package/scripts/build-phase5-external-handoff-contract.ts +39 -0
- package/scripts/build-phase5-external-handoff-inputs-lib.ts +86 -0
- package/scripts/build-phase5-external-handoff.ts +71 -0
- package/scripts/build-phase5-support-portal-payload.sh +67 -0
- package/scripts/build-phase8-ready-handoff-summary.sh +66 -0
- package/scripts/check-consumer-ci-auth.ts +64 -0
- package/scripts/check-package-manifest.ts +54 -0
- package/scripts/check-phase5-escalation-ready-to-submit.sh +74 -0
- package/scripts/check-phase5-latest-ready-chain.sh +44 -0
- package/scripts/check-phase8-loop-guard-coverage.sh +44 -0
- package/scripts/check-phase8-loop-guard.sh +81 -0
- package/scripts/check-refactor-progress-single-active.sh +25 -0
- package/scripts/check-validation-docs-hygiene.ts +42 -0
- package/scripts/clean-validation-artifacts-cli-lib.ts +38 -0
- package/scripts/clean-validation-artifacts-lib.ts +64 -0
- package/scripts/clean-validation-artifacts-output-lib.ts +21 -0
- package/scripts/clean-validation-artifacts.ts +42 -0
- package/scripts/close-phase5-escalation-submission.sh +81 -0
- package/scripts/collect-consumer-ci-artifacts-args-lib.ts +61 -0
- package/scripts/collect-consumer-ci-artifacts-contract.ts +54 -0
- package/scripts/collect-consumer-ci-artifacts-gh-command-lib.ts +17 -0
- package/scripts/collect-consumer-ci-artifacts-gh-fetch-lib.ts +45 -0
- package/scripts/collect-consumer-ci-artifacts-gh-lib.ts +5 -0
- package/scripts/collect-consumer-ci-artifacts-gh-run-fetch-lib.ts +56 -0
- package/scripts/collect-consumer-ci-artifacts-markdown-lib.ts +69 -0
- package/scripts/collect-consumer-ci-artifacts.ts +30 -0
- package/scripts/compile-skills-lock-args-lib.ts +53 -0
- package/scripts/compile-skills-lock-runner-lib.ts +48 -0
- package/scripts/compile-skills-lock.ts +9 -0
- package/scripts/consumer-ci-auth-check-contract.ts +39 -0
- package/scripts/consumer-ci-auth-check-gh-lib.ts +54 -0
- package/scripts/consumer-ci-auth-check-lib.ts +15 -0
- package/scripts/consumer-ci-auth-check-markdown-header-status-lib.ts +32 -0
- package/scripts/consumer-ci-auth-check-markdown-json-lib.ts +19 -0
- package/scripts/consumer-ci-auth-check-markdown-lib.ts +30 -0
- package/scripts/consumer-ci-auth-check-markdown-remediation-lib.ts +36 -0
- package/scripts/consumer-ci-auth-check-markdown-sections-lib.ts +6 -0
- package/scripts/consumer-ci-auth-check-parse-lib.ts +65 -0
- package/scripts/consumer-startup-failure-support-bundle-lib.ts +58 -0
- package/scripts/consumer-startup-triage-command-builders-core-lib.ts +5 -0
- package/scripts/consumer-startup-triage-command-builders-core-required-lib.ts +40 -0
- package/scripts/consumer-startup-triage-command-builders-lib.ts +10 -0
- package/scripts/consumer-startup-triage-command-builders-support-bundle-lib.ts +26 -0
- package/scripts/consumer-startup-triage-command-builders-support-followup-lib.ts +53 -0
- package/scripts/consumer-startup-triage-command-builders-support-lib.ts +5 -0
- package/scripts/consumer-startup-triage-command-builders-workflow-lint-lib.ts +45 -0
- package/scripts/consumer-startup-triage-commands-lib.ts +64 -0
- package/scripts/consumer-startup-triage-contract.ts +41 -0
- package/scripts/consumer-startup-triage-lib.ts +9 -0
- package/scripts/consumer-startup-triage-markdown-lib.ts +63 -0
- package/scripts/consumer-startup-triage-outputs-lib.ts +19 -0
- package/scripts/consumer-startup-unblock-arg-setters-lib.ts +34 -0
- package/scripts/consumer-startup-unblock-args-contract.ts +17 -0
- package/scripts/consumer-startup-unblock-args-defaults-lib.ts +17 -0
- package/scripts/consumer-startup-unblock-args-lib.ts +49 -0
- package/scripts/consumer-startup-unblock-auth-lib.ts +16 -0
- package/scripts/consumer-startup-unblock-blockers-lib.ts +65 -0
- package/scripts/consumer-startup-unblock-cli-lib.ts +10 -0
- package/scripts/consumer-startup-unblock-contract.ts +42 -0
- package/scripts/consumer-startup-unblock-input-lib.ts +17 -0
- package/scripts/consumer-startup-unblock-markdown-lib.ts +47 -0
- package/scripts/consumer-startup-unblock-markdown-next-actions-lib.ts +37 -0
- package/scripts/consumer-startup-unblock-markdown-sections-lib.ts +53 -0
- package/scripts/consumer-startup-unblock-parser-lib.ts +24 -0
- package/scripts/consumer-startup-unblock-runner-lib.ts +69 -0
- package/scripts/consumer-startup-unblock-status-lib.ts +7 -0
- package/scripts/consumer-startup-unblock-summary-lib.ts +54 -0
- package/scripts/consumer-support-bundle-args-defaults-lib.ts +11 -0
- package/scripts/consumer-support-bundle-args-values-lib.ts +27 -0
- package/scripts/consumer-support-bundle-contract.ts +61 -0
- package/scripts/consumer-support-bundle-gh-auth-repo-lib.ts +51 -0
- package/scripts/consumer-support-bundle-gh-command-lib.ts +63 -0
- package/scripts/consumer-support-bundle-gh-diagnostics-collector-lib.ts +66 -0
- package/scripts/consumer-support-bundle-gh-diagnostics-fetch-lib.ts +36 -0
- package/scripts/consumer-support-bundle-gh-lib.ts +8 -0
- package/scripts/consumer-support-bundle-gh-loaders-lib.ts +7 -0
- package/scripts/consumer-support-bundle-gh-workflow-runs-lib.ts +30 -0
- package/scripts/consumer-support-bundle-markdown-context-lib.ts +49 -0
- package/scripts/consumer-support-bundle-markdown-lib.ts +44 -0
- package/scripts/consumer-support-bundle-markdown-run-sections-append-lib.ts +47 -0
- package/scripts/consumer-support-bundle-markdown-sections-append-lib.ts +51 -0
- package/scripts/consumer-support-bundle-markdown-sections-core-lib.ts +67 -0
- package/scripts/consumer-support-bundle-markdown-sections-lib.ts +7 -0
- package/scripts/consumer-support-bundle-markdown-sections-run-diagnostics-lib.ts +34 -0
- package/scripts/consumer-support-bundle-markdown-sections-support-payload-lib.ts +60 -0
- package/scripts/consumer-support-bundle-markdown-top-sections-append-lib.ts +55 -0
- package/scripts/consumer-support-bundle-markdown-top-sections-lib.ts +51 -0
- package/scripts/consumer-support-bundle-runner-lib.ts +49 -0
- package/scripts/consumer-support-ticket-cli-arg-setters-lib.ts +30 -0
- package/scripts/consumer-support-ticket-cli-contract.ts +14 -0
- package/scripts/consumer-support-ticket-cli-defaults-lib.ts +14 -0
- package/scripts/consumer-support-ticket-cli-lib.ts +63 -0
- package/scripts/consumer-support-ticket-draft-diagnostics-sections-lib.ts +67 -0
- package/scripts/consumer-support-ticket-draft-lib.ts +36 -0
- package/scripts/consumer-support-ticket-draft-primary-sections-lib.ts +51 -0
- package/scripts/consumer-support-ticket-draft-sections-lib.ts +10 -0
- package/scripts/consumer-support-ticket-lib.ts +3 -0
- package/scripts/consumer-support-ticket-parser-lib.ts +72 -0
- package/scripts/consumer-support-ticket-runner-lib.ts +42 -0
- package/scripts/consumer-workflow-lint-args-lib.ts +56 -0
- package/scripts/consumer-workflow-lint-command-lib.ts +60 -0
- package/scripts/consumer-workflow-lint-contract.ts +14 -0
- package/scripts/consumer-workflow-lint-markdown-lib.ts +39 -0
- package/scripts/consumer-workflow-lint-runner-lib.ts +52 -0
- package/scripts/fill-adapter-external-ide-replay-closeout.sh +90 -0
- package/scripts/framework-menu-action-contract.ts +17 -0
- package/scripts/framework-menu-actions-diagnostics-adapter-lib.ts +31 -0
- package/scripts/framework-menu-actions-diagnostics-ci-lib.ts +40 -0
- package/scripts/framework-menu-actions-diagnostics-maintenance-lib.ts +22 -0
- package/scripts/framework-menu-actions-diagnostics-support-core-lib.ts +40 -0
- package/scripts/framework-menu-actions-diagnostics-support-lib.ts +15 -0
- package/scripts/framework-menu-actions-diagnostics-support-triage-lib.ts +28 -0
- package/scripts/framework-menu-actions-diagnostics.ts +19 -0
- package/scripts/framework-menu-actions-gates-ci-lib.ts +30 -0
- package/scripts/framework-menu-actions-gates-stage-lib.ts +32 -0
- package/scripts/framework-menu-actions-gates-tools-lib.ts +26 -0
- package/scripts/framework-menu-actions-gates.ts +17 -0
- package/scripts/framework-menu-actions-phase5-exec-lib.ts +32 -0
- package/scripts/framework-menu-actions-phase5-exit-lib.ts +16 -0
- package/scripts/framework-menu-actions-phase5-reports-lib.ts +49 -0
- package/scripts/framework-menu-actions-phase5.ts +17 -0
- package/scripts/framework-menu-actions.ts +22 -0
- package/scripts/framework-menu-builders-adapter.ts +29 -0
- package/scripts/framework-menu-builders-consumer-contract.ts +19 -0
- package/scripts/framework-menu-builders-consumer-mock-ab-lib.ts +22 -0
- package/scripts/framework-menu-builders-consumer-triage-lib.ts +31 -0
- package/scripts/framework-menu-builders-consumer.ts +6 -0
- package/scripts/framework-menu-builders-maintenance.ts +24 -0
- package/scripts/framework-menu-builders-phase5-blockers-lib.ts +16 -0
- package/scripts/framework-menu-builders-phase5-closure-lib.ts +46 -0
- package/scripts/framework-menu-builders-phase5-contract.ts +43 -0
- package/scripts/framework-menu-builders-phase5-handoff-lib.ts +38 -0
- package/scripts/framework-menu-builders-phase5-status-lib.ts +24 -0
- package/scripts/framework-menu-builders-phase5.ts +12 -0
- package/scripts/framework-menu-builders-shared-lib.ts +3 -0
- package/scripts/framework-menu-builders.ts +19 -0
- package/scripts/framework-menu-gate-lib.ts +53 -0
- package/scripts/framework-menu-prompt-types.ts +12 -0
- package/scripts/framework-menu-prompts-adapter.ts +50 -0
- package/scripts/framework-menu-prompts-consumer-ci-lib.ts +36 -0
- package/scripts/framework-menu-prompts-consumer-contract.ts +46 -0
- package/scripts/framework-menu-prompts-consumer-startup-triage-lib.ts +69 -0
- package/scripts/framework-menu-prompts-consumer-support-bundle-lib.ts +20 -0
- package/scripts/framework-menu-prompts-consumer-support-ticket-lib.ts +27 -0
- package/scripts/framework-menu-prompts-consumer-unblock-status-lib.ts +33 -0
- package/scripts/framework-menu-prompts-consumer-workflow-lint-lib.ts +27 -0
- package/scripts/framework-menu-prompts-consumer.ts +26 -0
- package/scripts/framework-menu-prompts-phase5-blockers-lib.ts +24 -0
- package/scripts/framework-menu-prompts-phase5-closure-lib.ts +17 -0
- package/scripts/framework-menu-prompts-phase5-closure-live-lib.ts +51 -0
- package/scripts/framework-menu-prompts-phase5-closure-mock-lib.ts +23 -0
- package/scripts/framework-menu-prompts-phase5-closure-shared-lib.ts +24 -0
- package/scripts/framework-menu-prompts-phase5-contract.ts +48 -0
- package/scripts/framework-menu-prompts-phase5-handoff-lib.ts +54 -0
- package/scripts/framework-menu-prompts-phase5-mock-ab-lib.ts +36 -0
- package/scripts/framework-menu-prompts-phase5-status-lib.ts +31 -0
- package/scripts/framework-menu-prompts-phase5.ts +16 -0
- package/scripts/framework-menu-prompts.ts +32 -0
- package/scripts/framework-menu-runner-common.ts +13 -0
- package/scripts/framework-menu-runner-constants.ts +3 -0
- package/scripts/framework-menu-runner-evidence-lib.ts +14 -0
- package/scripts/framework-menu-runner-git-lib.ts +13 -0
- package/scripts/framework-menu-runner-path-lib.ts +12 -0
- package/scripts/framework-menu-runner-process-lib.ts +27 -0
- package/scripts/framework-menu-runners-adapter-contract.ts +13 -0
- package/scripts/framework-menu-runners-adapter-readiness-lib.ts +20 -0
- package/scripts/framework-menu-runners-adapter-real-session-lib.ts +20 -0
- package/scripts/framework-menu-runners-adapter-session-lib.ts +19 -0
- package/scripts/framework-menu-runners-adapter.ts +9 -0
- package/scripts/framework-menu-runners-consumer-artifacts-lib.ts +11 -0
- package/scripts/framework-menu-runners-consumer-auth-lib.ts +11 -0
- package/scripts/framework-menu-runners-consumer-contract.ts +55 -0
- package/scripts/framework-menu-runners-consumer-exec-lib.ts +13 -0
- package/scripts/framework-menu-runners-consumer-mock-ab-lib.ts +24 -0
- package/scripts/framework-menu-runners-consumer-startup-triage-lib.ts +24 -0
- package/scripts/framework-menu-runners-consumer-support-bundle-lib.ts +11 -0
- package/scripts/framework-menu-runners-consumer-support-ticket-lib.ts +20 -0
- package/scripts/framework-menu-runners-consumer-unblock-lib.ts +22 -0
- package/scripts/framework-menu-runners-consumer-workflow-lib.ts +18 -0
- package/scripts/framework-menu-runners-consumer.ts +21 -0
- package/scripts/framework-menu-runners-phase5-blockers-lib.ts +18 -0
- package/scripts/framework-menu-runners-phase5-closure-lib.ts +25 -0
- package/scripts/framework-menu-runners-phase5-contract.ts +39 -0
- package/scripts/framework-menu-runners-phase5-exec-lib.ts +25 -0
- package/scripts/framework-menu-runners-phase5-handoff-lib.ts +25 -0
- package/scripts/framework-menu-runners-phase5-status-lib.ts +20 -0
- package/scripts/framework-menu-runners-phase5.ts +12 -0
- package/scripts/framework-menu-runners-validation-cleanup-lib.ts +31 -0
- package/scripts/framework-menu-runners-validation-docs-lib.ts +20 -0
- package/scripts/framework-menu-runners-validation-skills-lib.ts +11 -0
- package/scripts/framework-menu-runners-validation.ts +4 -0
- package/scripts/framework-menu-runners.ts +37 -0
- package/scripts/framework-menu-skills-lib.ts +26 -0
- package/scripts/framework-menu.cli.ts +3 -0
- package/scripts/framework-menu.ts +67 -0
- package/scripts/lint-consumer-workflows.ts +29 -0
- package/scripts/mark-phase5-escalation-submitted.sh +49 -0
- package/scripts/mark-phase8-followup-posted-now.sh +33 -0
- package/scripts/mark-phase8-followup-replied-now.sh +52 -0
- package/scripts/mark-phase8-support-followup-state.sh +89 -0
- package/scripts/mock-consumer-ab-blockers-lib.ts +36 -0
- package/scripts/mock-consumer-ab-cli-arg-setters-lib.ts +46 -0
- package/scripts/mock-consumer-ab-cli-defaults-lib.ts +19 -0
- package/scripts/mock-consumer-ab-cli-lib.ts +46 -0
- package/scripts/mock-consumer-ab-contract.ts +30 -0
- package/scripts/mock-consumer-ab-evidence-lib.ts +50 -0
- package/scripts/mock-consumer-ab-markdown-assertions-lib.ts +24 -0
- package/scripts/mock-consumer-ab-markdown-blockers-lib.ts +9 -0
- package/scripts/mock-consumer-ab-markdown-contract.ts +16 -0
- package/scripts/mock-consumer-ab-markdown-header-inputs-lib.ts +21 -0
- package/scripts/mock-consumer-ab-markdown-lib.ts +24 -0
- package/scripts/mock-consumer-ab-markdown-next-actions-lib.ts +22 -0
- package/scripts/mock-consumer-ab-markdown-sections-lib.ts +21 -0
- package/scripts/mock-consumer-ab-report-lib.ts +12 -0
- package/scripts/mock-consumer-ab-runner-lib.ts +51 -0
- package/scripts/mock-consumer-smoke-contract.ts +14 -0
- package/scripts/mock-consumer-smoke-lib.ts +3 -0
- package/scripts/mock-consumer-smoke-summary-lib.ts +59 -0
- package/scripts/mock-consumer-smoke-verdict-lib.ts +27 -0
- package/scripts/mock-consumer-startup-triage-arg-flags-lib.ts +13 -0
- package/scripts/mock-consumer-startup-triage-arg-values-lib.ts +35 -0
- package/scripts/mock-consumer-startup-triage-cli-contract.ts +7 -0
- package/scripts/mock-consumer-startup-triage-cli-lib.ts +56 -0
- package/scripts/mock-consumer-startup-triage-lib.ts +2 -0
- package/scripts/mock-consumer-startup-triage-markdown-lib.ts +57 -0
- package/scripts/mock-consumer-startup-unblock-markdown-lib.ts +38 -0
- package/scripts/package-install-smoke-command-lib.ts +67 -0
- package/scripts/package-install-smoke-consumer-git-lib.ts +10 -0
- package/scripts/package-install-smoke-consumer-git-payload-lib.ts +45 -0
- package/scripts/package-install-smoke-consumer-git-repo-lib.ts +49 -0
- package/scripts/package-install-smoke-consumer-npm-lib.ts +47 -0
- package/scripts/package-install-smoke-consumer-repo-setup-lib.ts +31 -0
- package/scripts/package-install-smoke-contract.ts +6 -0
- package/scripts/package-install-smoke-execution-lib.ts +73 -0
- package/scripts/package-install-smoke-execution-steps-lib.ts +46 -0
- package/scripts/package-install-smoke-execution-summary-lib.ts +51 -0
- package/scripts/package-install-smoke-file-lib.ts +33 -0
- package/scripts/package-install-smoke-fixtures-content-lib.ts +57 -0
- package/scripts/package-install-smoke-fixtures-lib.ts +41 -0
- package/scripts/package-install-smoke-fixtures-write-lib.ts +14 -0
- package/scripts/package-install-smoke-gate-lib.ts +64 -0
- package/scripts/package-install-smoke-lib.ts +3 -0
- package/scripts/package-install-smoke-lifecycle-lib.ts +91 -0
- package/scripts/package-install-smoke-mode-lib.ts +31 -0
- package/scripts/package-install-smoke-repo-setup-lib.ts +2 -0
- package/scripts/package-install-smoke-runner-common.ts +12 -0
- package/scripts/package-install-smoke-tarball-lib.ts +34 -0
- package/scripts/package-install-smoke-workspace-contract.ts +11 -0
- package/scripts/package-install-smoke-workspace-factory-lib.ts +38 -0
- package/scripts/package-install-smoke-workspace-lib.ts +7 -0
- package/scripts/package-install-smoke-workspace-report-lib.ts +44 -0
- package/scripts/package-install-smoke.ts +7 -0
- package/scripts/package-manifest-lib.ts +44 -0
- package/scripts/phase5-blockers-contract.ts +36 -0
- package/scripts/phase5-blockers-detected-blockers-lib.ts +35 -0
- package/scripts/phase5-blockers-markdown-header-inputs-signals-lib.ts +48 -0
- package/scripts/phase5-blockers-markdown-lib.ts +51 -0
- package/scripts/phase5-blockers-markdown-list-utils-lib.ts +13 -0
- package/scripts/phase5-blockers-markdown-next-actions-blocked-lib.ts +46 -0
- package/scripts/phase5-blockers-markdown-next-actions-lib.ts +29 -0
- package/scripts/phase5-blockers-markdown-next-actions-ready-lib.ts +13 -0
- package/scripts/phase5-blockers-markdown-sections-lib.ts +7 -0
- package/scripts/phase5-blockers-markdown-static-sections-lib.ts +26 -0
- package/scripts/phase5-blockers-missing-inputs-lib.ts +16 -0
- package/scripts/phase5-blockers-parser-adapter-lib.ts +44 -0
- package/scripts/phase5-blockers-parser-consumer-lib.ts +32 -0
- package/scripts/phase5-blockers-parser-lib.ts +2 -0
- package/scripts/phase5-blockers-readiness-arg-flags-lib.ts +13 -0
- package/scripts/phase5-blockers-readiness-arg-values-lib.ts +27 -0
- package/scripts/phase5-blockers-readiness-cli-contract.ts +6 -0
- package/scripts/phase5-blockers-readiness-cli-lib.ts +55 -0
- package/scripts/phase5-blockers-readiness-input-lib.ts +17 -0
- package/scripts/phase5-blockers-readiness-lib.ts +8 -0
- package/scripts/phase5-blockers-summary-lib.ts +48 -0
- package/scripts/phase5-execution-closure-commands-lib.ts +32 -0
- package/scripts/phase5-execution-closure-lib.ts +2 -0
- package/scripts/phase5-execution-closure-outputs-lib.ts +25 -0
- package/scripts/phase5-execution-closure-plan-adapter-commands-lib.ts +41 -0
- package/scripts/phase5-execution-closure-plan-adapter-lib.ts +25 -0
- package/scripts/phase5-execution-closure-plan-consumer-lib.ts +5 -0
- package/scripts/phase5-execution-closure-plan-consumer-preflight-lib.ts +58 -0
- package/scripts/phase5-execution-closure-plan-consumer-triage-lib.ts +62 -0
- package/scripts/phase5-execution-closure-plan-contract.ts +42 -0
- package/scripts/phase5-execution-closure-plan-lib.ts +7 -0
- package/scripts/phase5-execution-closure-plan-phase5-args-lib.ts +52 -0
- package/scripts/phase5-execution-closure-plan-phase5-lib.ts +37 -0
- package/scripts/phase5-execution-closure-plan-validation-lib.ts +15 -0
- package/scripts/phase5-execution-closure-report-contract.ts +22 -0
- package/scripts/phase5-execution-closure-report-executions-lib.ts +35 -0
- package/scripts/phase5-execution-closure-report-header-lib.ts +38 -0
- package/scripts/phase5-execution-closure-report-lib.ts +31 -0
- package/scripts/phase5-execution-closure-report-next-actions-lib.ts +19 -0
- package/scripts/phase5-execution-closure-report-sections-lib.ts +51 -0
- package/scripts/phase5-execution-closure-runner-arg-flags-lib.ts +32 -0
- package/scripts/phase5-execution-closure-runner-arg-handlers-lib.ts +33 -0
- package/scripts/phase5-execution-closure-runner-arg-value-handlers-lib.ts +62 -0
- package/scripts/phase5-execution-closure-runner-arg-values-lib.ts +39 -0
- package/scripts/phase5-execution-closure-runner-contract.ts +31 -0
- package/scripts/phase5-execution-closure-runner-exec-command-lib.ts +20 -0
- package/scripts/phase5-execution-closure-runner-exec-error-lib.ts +32 -0
- package/scripts/phase5-execution-closure-runner-exec-lib.ts +35 -0
- package/scripts/phase5-execution-closure-runner-lib.ts +8 -0
- package/scripts/phase5-execution-closure-runner-mappers-lib.ts +30 -0
- package/scripts/phase5-execution-closure-runner-options-normalizer-lib.ts +19 -0
- package/scripts/phase5-execution-closure-runner-parse-lib.ts +23 -0
- package/scripts/phase5-execution-closure-runner-plan-lib.ts +14 -0
- package/scripts/phase5-execution-closure-runner-report-writer-lib.ts +12 -0
- package/scripts/phase5-execution-closure-status-arg-flags-lib.ts +13 -0
- package/scripts/phase5-execution-closure-status-arg-values-lib.ts +35 -0
- package/scripts/phase5-execution-closure-status-blockers-lib.ts +47 -0
- package/scripts/phase5-execution-closure-status-cli-contract.ts +24 -0
- package/scripts/phase5-execution-closure-status-cli-input-lib.ts +17 -0
- package/scripts/phase5-execution-closure-status-cli-lib.ts +10 -0
- package/scripts/phase5-execution-closure-status-cli-parse-lib.ts +59 -0
- package/scripts/phase5-execution-closure-status-contract.ts +48 -0
- package/scripts/phase5-execution-closure-status-lib.ts +8 -0
- package/scripts/phase5-execution-closure-status-markdown-lib.ts +22 -0
- package/scripts/phase5-execution-closure-status-markdown-list-lib.ts +16 -0
- package/scripts/phase5-execution-closure-status-markdown-next-actions-lib.ts +24 -0
- package/scripts/phase5-execution-closure-status-markdown-sections-lib.ts +7 -0
- package/scripts/phase5-execution-closure-status-markdown-static-sections-lib.ts +58 -0
- package/scripts/phase5-execution-closure-status-missing-inputs-lib.ts +19 -0
- package/scripts/phase5-execution-closure-status-parser-lib.ts +4 -0
- package/scripts/phase5-execution-closure-status-summary-helpers-lib.ts +6 -0
- package/scripts/phase5-execution-closure-status-summary-lib.ts +34 -0
- package/scripts/phase5-execution-closure-status-verdict-lib.ts +11 -0
- package/scripts/phase5-external-handoff-contract.ts +51 -0
- package/scripts/phase5-external-handoff-inputs-artifacts-lib.ts +45 -0
- package/scripts/phase5-external-handoff-lib.ts +3 -0
- package/scripts/phase5-external-handoff-markdown-core-sections-lib.ts +70 -0
- package/scripts/phase5-external-handoff-markdown-header-lib.ts +15 -0
- package/scripts/phase5-external-handoff-markdown-lib.ts +44 -0
- package/scripts/phase5-external-handoff-markdown-list-lib.ts +16 -0
- package/scripts/phase5-external-handoff-markdown-list-sections-lib.ts +54 -0
- package/scripts/phase5-external-handoff-markdown-next-actions-lib.ts +27 -0
- package/scripts/phase5-external-handoff-markdown-sections-append-lib.ts +69 -0
- package/scripts/phase5-external-handoff-markdown-sections-lib.ts +12 -0
- package/scripts/phase5-external-handoff-summary-helpers-lib.ts +9 -0
- package/scripts/phase5-external-handoff-summary-lib.ts +46 -0
- package/scripts/phase5-external-handoff-verdict-evaluators-lib.ts +67 -0
- package/scripts/prepare-adapter-external-ide-replay-closeout-auto.sh +100 -0
- package/scripts/prepare-phase5-escalation-submission.sh +21 -0
- package/scripts/refresh-phase5-latest-escalation.sh +94 -0
- package/scripts/run-phase5-execution-closure.ts +58 -0
- package/scripts/run-phase5-post-support-refresh.sh +25 -0
- package/scripts/run-phase8-after-billing-reactivation.sh +31 -0
- package/scripts/run-phase8-autopilot.sh +42 -0
- package/scripts/run-phase8-close-ready.sh +38 -0
- package/scripts/run-phase8-doctor.sh +61 -0
- package/scripts/run-phase8-next-step.sh +39 -0
- package/scripts/run-phase8-status-pack.sh +35 -0
- package/scripts/run-phase8-tick.sh +35 -0
- package/scripts/sync-codex-skills.sh +40 -0
- package/scripts/sync-phase5-latest-docs.sh +119 -0
- package/scripts/validation-docs-hygiene-lib.ts +46 -0
- package/skills.lock.json +178 -0
- package/skills.sources.json +33 -0
- package/tsconfig.json +39 -0
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
# API Reference (v2.x)
|
|
2
|
+
|
|
3
|
+
This document describes the active TypeScript API surface used by the deterministic gate flow in this repository.
|
|
4
|
+
|
|
5
|
+
## Stage policies
|
|
6
|
+
|
|
7
|
+
File: `integrations/gate/stagePolicies.ts`
|
|
8
|
+
|
|
9
|
+
- `policyForPreCommit(): GatePolicy`
|
|
10
|
+
- `policyForPrePush(): GatePolicy`
|
|
11
|
+
- `policyForCI(): GatePolicy`
|
|
12
|
+
- `applyHeuristicSeverityForStage(rules, stage): RuleSet`
|
|
13
|
+
|
|
14
|
+
## Git stage runners
|
|
15
|
+
|
|
16
|
+
File: `integrations/git/stageRunners.ts`
|
|
17
|
+
|
|
18
|
+
- `runPreCommitStage(): Promise<number>`
|
|
19
|
+
- `runPrePushStage(): Promise<number>`
|
|
20
|
+
- `runCiStage(): Promise<number>`
|
|
21
|
+
|
|
22
|
+
Exit code contract:
|
|
23
|
+
|
|
24
|
+
- `0` on pass/warn
|
|
25
|
+
- `1` on block or runner error
|
|
26
|
+
|
|
27
|
+
## Platform wrappers (exports)
|
|
28
|
+
|
|
29
|
+
File: `integrations/git/index.ts`
|
|
30
|
+
|
|
31
|
+
- `runPreCommitIOS`, `runPreCommitBackend`, `runPreCommitFrontend`, `runPreCommitAndroid`
|
|
32
|
+
- `runPrePushIOS`, `runPrePushBackend`, `runPrePushFrontend`, `runPrePushAndroid`
|
|
33
|
+
- `runCiIOS`, `runCiBackend`, `runCiFrontend`, `runCiAndroid`
|
|
34
|
+
- `evaluateStagedIOS` (legacy compatibility entry still exported)
|
|
35
|
+
|
|
36
|
+
## Shared execution entry
|
|
37
|
+
|
|
38
|
+
File: `integrations/git/runPlatformGate.ts`
|
|
39
|
+
|
|
40
|
+
Primary function:
|
|
41
|
+
|
|
42
|
+
- `runPlatformGate(params: { policy: GatePolicy; scope: GateScope }): Promise<number>`
|
|
43
|
+
|
|
44
|
+
Behavior:
|
|
45
|
+
|
|
46
|
+
- Builds facts from staged or range scope.
|
|
47
|
+
- Detects platforms from facts.
|
|
48
|
+
- Loads and merges baseline + project rules.
|
|
49
|
+
- Applies optional heuristic rule-pack and stage-aware promotion.
|
|
50
|
+
- Evaluates findings + gate decision.
|
|
51
|
+
- Writes `.ai_evidence.json` via `generateEvidence`.
|
|
52
|
+
|
|
53
|
+
## Git scope helpers
|
|
54
|
+
|
|
55
|
+
Files:
|
|
56
|
+
|
|
57
|
+
- `integrations/git/getCommitRangeFacts.ts`
|
|
58
|
+
- `integrations/git/resolveGitRefs.ts`
|
|
59
|
+
- `integrations/git/runCliCommand.ts`
|
|
60
|
+
|
|
61
|
+
Key helpers:
|
|
62
|
+
|
|
63
|
+
- `getFactsForCommitRange({ fromRef, toRef, extensions })`
|
|
64
|
+
- `resolveUpstreamRef()`
|
|
65
|
+
- `resolveCiBaseRef()`
|
|
66
|
+
- `runCliCommand(runner)`
|
|
67
|
+
|
|
68
|
+
## Evidence API
|
|
69
|
+
|
|
70
|
+
Files:
|
|
71
|
+
|
|
72
|
+
- `integrations/evidence/schema.ts`
|
|
73
|
+
- `integrations/evidence/buildEvidence.ts`
|
|
74
|
+
- `integrations/evidence/writeEvidence.ts`
|
|
75
|
+
- `integrations/evidence/generateEvidence.ts`
|
|
76
|
+
|
|
77
|
+
Key types:
|
|
78
|
+
|
|
79
|
+
- `AiEvidenceV2_1`
|
|
80
|
+
- `Snapshot`
|
|
81
|
+
- `LedgerEntry`
|
|
82
|
+
- `PlatformState`
|
|
83
|
+
- `RulesetState`
|
|
84
|
+
|
|
85
|
+
Contract:
|
|
86
|
+
|
|
87
|
+
- Source of truth: `version: "2.1"`
|
|
88
|
+
- Deterministic output order
|
|
89
|
+
- Snapshot + ledger merge model
|
|
90
|
+
|
|
91
|
+
## Rule packs
|
|
92
|
+
|
|
93
|
+
Files:
|
|
94
|
+
|
|
95
|
+
- `core/rules/presets/iosEnterpriseRuleSet.ts`
|
|
96
|
+
- `core/rules/presets/backendRuleSet.ts`
|
|
97
|
+
- `core/rules/presets/frontendRuleSet.ts`
|
|
98
|
+
- `core/rules/presets/androidRuleSet.ts`
|
|
99
|
+
- `core/rules/presets/astHeuristicsRuleSet.ts`
|
|
100
|
+
- `core/rules/presets/rulePackVersions.ts`
|
|
101
|
+
|
|
102
|
+
## MCP read-only evidence context
|
|
103
|
+
|
|
104
|
+
Files:
|
|
105
|
+
|
|
106
|
+
- `integrations/mcp/evidenceContextServer.ts`
|
|
107
|
+
- `integrations/mcp/evidenceContextServer.cli.ts`
|
|
108
|
+
|
|
109
|
+
CLI:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
npm run mcp:evidence
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Read-only endpoints:
|
|
116
|
+
|
|
117
|
+
- `GET /health`
|
|
118
|
+
- `GET /status`
|
|
119
|
+
- includes `context_api.endpoints[]`, `context_api.filters`, and `context_api.pagination_bounds` capabilities
|
|
120
|
+
- `GET /ai-evidence`
|
|
121
|
+
- `GET /ai-evidence/summary`
|
|
122
|
+
- snapshot metadata includes `has_findings` (fast boolean gate for non-empty findings)
|
|
123
|
+
- snapshot metadata includes `findings_files_count` (deterministic count of distinct files with findings)
|
|
124
|
+
- snapshot metadata includes `findings_rules_count` (deterministic count of distinct rule IDs in findings)
|
|
125
|
+
- snapshot metadata includes `findings_with_lines_count` (deterministic count of findings with line metadata)
|
|
126
|
+
- snapshot metadata includes `findings_without_lines_count` (deterministic count of findings without line metadata)
|
|
127
|
+
- includes `rulesets_platforms_count` (deterministic count of distinct platforms covered by loaded rulesets)
|
|
128
|
+
- includes `rulesets_bundles_count` (deterministic count of distinct loaded ruleset bundles)
|
|
129
|
+
- includes `rulesets_hashes_count` (deterministic count of distinct loaded ruleset hashes)
|
|
130
|
+
- includes `ledger_files_count` (deterministic count of distinct files with open ledger entries)
|
|
131
|
+
- includes `ledger_rules_count` (deterministic count of distinct rule IDs with open ledger entries)
|
|
132
|
+
- includes `suppressed_replacement_rules_count` (deterministic count of distinct replacement rule IDs in suppressed findings)
|
|
133
|
+
- includes `suppressed_platforms_count` (deterministic count of distinct platforms represented in suppressed findings)
|
|
134
|
+
- includes `suppressed_files_count` (deterministic count of distinct files represented in suppressed findings)
|
|
135
|
+
- includes `suppressed_rules_count` (deterministic count of distinct original rule IDs represented in suppressed findings)
|
|
136
|
+
- snapshot metadata includes `severity_counts` (deterministic key order)
|
|
137
|
+
- snapshot metadata includes `findings_by_platform` (deterministic platform-key order)
|
|
138
|
+
- snapshot metadata includes `highest_severity` (deterministic severity ranking)
|
|
139
|
+
- snapshot metadata includes `blocking_findings_count` (count of CRITICAL+ERROR findings)
|
|
140
|
+
- includes `ledger_by_platform` (deterministic platform-key order)
|
|
141
|
+
- includes `rulesets_by_platform` (deterministic platform-key order)
|
|
142
|
+
- includes `rulesets_fingerprint` (deterministic ordered hash signature)
|
|
143
|
+
- includes `platform_confidence_counts` (deterministic counts by platform confidence level)
|
|
144
|
+
- includes `suppressed_findings_count` (deterministic count of suppressed findings in consolidation)
|
|
145
|
+
- includes `tracked_platforms_count` (deterministic count of currently tracked platforms)
|
|
146
|
+
- includes `detected_platforms_count` (deterministic count of currently detected platforms)
|
|
147
|
+
- includes `non_detected_platforms_count` (deterministic count of currently tracked but non-detected platforms)
|
|
148
|
+
- `GET /ai-evidence/snapshot`
|
|
149
|
+
- `GET /ai-evidence/findings`
|
|
150
|
+
- `GET /ai-evidence/findings?limit=...&offset=...`
|
|
151
|
+
- deterministic bound: `maxLimit=100`
|
|
152
|
+
- pagination metadata includes `has_more` when `limit` is provided
|
|
153
|
+
- `GET /ai-evidence/rulesets`
|
|
154
|
+
- `GET /ai-evidence/rulesets?platform=...&bundle=...`
|
|
155
|
+
- `GET /ai-evidence/rulesets?limit=...&offset=...`
|
|
156
|
+
- deterministic bound: `maxLimit=100`
|
|
157
|
+
- pagination metadata includes `has_more` when `limit` is provided
|
|
158
|
+
- `GET /ai-evidence/platforms`
|
|
159
|
+
- `GET /ai-evidence/platforms?detectedOnly=false&confidence=...`
|
|
160
|
+
- `GET /ai-evidence/platforms?detectedOnly=false&limit=...&offset=...`
|
|
161
|
+
- deterministic bound: `maxLimit=100`
|
|
162
|
+
- pagination metadata includes `has_more` when `limit` is provided
|
|
163
|
+
- `GET /ai-evidence/ledger`
|
|
164
|
+
- `GET /ai-evidence/ledger?lastSeenAfter=...&lastSeenBefore=...`
|
|
165
|
+
- `GET /ai-evidence/ledger?lastSeenAfter=...&lastSeenBefore=...&limit=...&offset=...`
|
|
166
|
+
- deterministic bound: `maxLimit=100`
|
|
167
|
+
- pagination metadata includes `has_more` when `limit` is provided
|
|
168
|
+
|
|
169
|
+
Reference: `docs/MCP_EVIDENCE_CONTEXT_SERVER.md`.
|
|
170
|
+
Consumption: `docs/MCP_AGENT_CONTEXT_CONSUMPTION.md`.
|
|
171
|
+
|
|
172
|
+
## Local execution quick refs
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
npm run framework:menu
|
|
176
|
+
npm run validation:adapter-readiness
|
|
177
|
+
npm run typecheck
|
|
178
|
+
npm run test:deterministic
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## Optional diagnostics adapters
|
|
182
|
+
|
|
183
|
+
Files:
|
|
184
|
+
|
|
185
|
+
- `scripts/build-adapter-readiness.ts`
|
|
186
|
+
- `scripts/adapter-readiness-lib.ts`
|
|
187
|
+
- `scripts/build-phase5-blockers-readiness.ts`
|
|
188
|
+
- `scripts/phase5-blockers-readiness-lib.ts`
|
|
189
|
+
- `scripts/build-phase5-execution-closure-status.ts`
|
|
190
|
+
- `scripts/phase5-execution-closure-status-lib.ts`
|
|
191
|
+
- `scripts/run-phase5-execution-closure.ts`
|
|
192
|
+
- `scripts/phase5-execution-closure-lib.ts`
|
|
193
|
+
- `scripts/clean-validation-artifacts.ts`
|
|
194
|
+
- `scripts/clean-validation-artifacts-lib.ts`
|
|
195
|
+
- `scripts/framework-menu.ts`
|
|
196
|
+
|
|
197
|
+
Commands:
|
|
198
|
+
|
|
199
|
+
- `npm run validation:adapter-readiness`
|
|
200
|
+
- `npm run validation:adapter-session-status`
|
|
201
|
+
- `npm run validation:adapter-real-session-report`
|
|
202
|
+
- `npm run validation:phase5-blockers-readiness`
|
|
203
|
+
- `npm run validation:phase5-execution-closure-status`
|
|
204
|
+
- `npm run validation:phase5-execution-closure`
|
|
205
|
+
- `npm run validation:phase5-external-handoff`
|
|
206
|
+
- `npm run validation:clean-artifacts`
|
|
207
|
+
|
|
208
|
+
`validation:phase5-execution-closure` notes:
|
|
209
|
+
|
|
210
|
+
- defaults to output directory `.audit-reports/phase5`
|
|
211
|
+
- runs auth preflight and fails fast on auth/scope blockers
|
|
212
|
+
- supports `--skip-auth-preflight` when preflight must be bypassed
|
|
213
|
+
|
|
214
|
+
Framework menu action:
|
|
215
|
+
|
|
216
|
+
- `Build adapter readiness report`
|
|
217
|
+
- `Build phase5 execution closure status report`
|
|
218
|
+
- `Run phase5 execution closure (one-shot orchestration)`
|
|
219
|
+
- `Build phase5 external handoff report`
|
|
220
|
+
- `Clean local validation artifacts`
|
|
221
|
+
|
|
222
|
+
Deterministic argument builders exported from menu module:
|
|
223
|
+
|
|
224
|
+
- `buildAdapterReadinessCommandArgs({ scriptPath, adapterReportFile, outFile })`
|
|
225
|
+
- `buildCleanValidationArtifactsCommandArgs({ scriptPath, dryRun })`
|
|
226
|
+
- `buildPhase5BlockersReadinessCommandArgs({ scriptPath, adapterReportFile, consumerTriageReportFile, outFile })`
|
|
227
|
+
- `buildPhase5ExecutionClosureStatusCommandArgs({ scriptPath, phase5BlockersReportFile, consumerUnblockReportFile, adapterReadinessReportFile, outFile, requireAdapterReadiness })`
|
|
228
|
+
- `buildPhase5ExternalHandoffCommandArgs({ scriptPath, repo, phase5StatusReportFile, phase5BlockersReportFile, consumerUnblockReportFile, mockAbReportFile, runReportFile, outFile, artifactUrls, requireArtifactUrls, requireMockAbReport })`
|
|
229
|
+
- `buildPhase5ExecutionClosureCommandArgs({ scriptPath, repo, limit, outDir, runWorkflowLint, includeAuthPreflight, repoPath, actionlintBin, includeAdapter, requireAdapterReadiness })`
|
|
230
|
+
|
|
231
|
+
Current adapter implementation note:
|
|
232
|
+
|
|
233
|
+
- The adapter report input flag is named `adapterReportFile` / `--adapter-report` for compatibility with existing runbooks.
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Architecture (v2.x)
|
|
2
|
+
|
|
3
|
+
## Objective
|
|
4
|
+
|
|
5
|
+
Provide deterministic governance for AI-assisted development with strict separation of concerns.
|
|
6
|
+
|
|
7
|
+
Core pipeline:
|
|
8
|
+
|
|
9
|
+
`Facts -> Rules -> Gate -> ai_evidence v2.1`
|
|
10
|
+
|
|
11
|
+
## Invariants
|
|
12
|
+
|
|
13
|
+
- Evidence is the state source of truth (`.ai_evidence.json`, `version: "2.1"`).
|
|
14
|
+
- Gate decision is deterministic for each stage scope and policy.
|
|
15
|
+
- Domain logic stays pure in `core/*` (no shell/filesystem/network coupling).
|
|
16
|
+
- Integrations adapt external systems and delegate decisions to domain logic.
|
|
17
|
+
- Platform detection and rule-pack loading are data-driven from facts.
|
|
18
|
+
|
|
19
|
+
## Layer model
|
|
20
|
+
|
|
21
|
+
### Domain (`core/*`)
|
|
22
|
+
|
|
23
|
+
- Facts model (`core/facts/*`)
|
|
24
|
+
- Rule definitions and presets (`core/rules/*`)
|
|
25
|
+
- Gate evaluation (`core/gate/*`)
|
|
26
|
+
|
|
27
|
+
No infrastructure dependencies.
|
|
28
|
+
|
|
29
|
+
### Integrations (`integrations/*`)
|
|
30
|
+
|
|
31
|
+
- Git scope and execution adapters (`integrations/git/*`)
|
|
32
|
+
- Stage policies (`integrations/gate/*`)
|
|
33
|
+
- Platform detection (`integrations/platform/*`)
|
|
34
|
+
- Evidence persistence (`integrations/evidence/*`)
|
|
35
|
+
- MCP read-only server (`integrations/mcp/*`)
|
|
36
|
+
|
|
37
|
+
## Stage architecture
|
|
38
|
+
|
|
39
|
+
Policy source: `integrations/gate/stagePolicies.ts`
|
|
40
|
+
|
|
41
|
+
- `PRE_COMMIT`
|
|
42
|
+
- Scope: staged (`git diff --cached`)
|
|
43
|
+
- Block from `CRITICAL`
|
|
44
|
+
- `PRE_PUSH`
|
|
45
|
+
- Scope: `upstream..HEAD`
|
|
46
|
+
- Block from `ERROR`
|
|
47
|
+
- `CI`
|
|
48
|
+
- Scope: `baseRef..HEAD`
|
|
49
|
+
- Block from `ERROR`
|
|
50
|
+
|
|
51
|
+
## Runtime entrypoints
|
|
52
|
+
|
|
53
|
+
- Shared execution: `integrations/git/runPlatformGate.ts`
|
|
54
|
+
- Stage runners: `integrations/git/stageRunners.ts`
|
|
55
|
+
- CLI wrappers: `integrations/git/*.cli.ts`
|
|
56
|
+
- Interactive menu: `scripts/framework-menu.ts`
|
|
57
|
+
|
|
58
|
+
## IDE adapter boundary
|
|
59
|
+
|
|
60
|
+
- `core/*` and `integrations/*` are IDE-agnostic; they must not depend on editor-specific runtime hooks.
|
|
61
|
+
- IDE diagnostics adapters (provider-specific runtime checks/reports) live in `scripts/*` and `docs/validation/*`.
|
|
62
|
+
- PRE_COMMIT, PRE_PUSH, and CI gate outcomes depend only on facts/rules/gate/evidence contracts.
|
|
63
|
+
|
|
64
|
+
## Platform and rule-pack model
|
|
65
|
+
|
|
66
|
+
Detected platforms can be combined in one run:
|
|
67
|
+
|
|
68
|
+
- `ios`
|
|
69
|
+
- `backend`
|
|
70
|
+
- `frontend`
|
|
71
|
+
- `android`
|
|
72
|
+
|
|
73
|
+
Baseline packs:
|
|
74
|
+
|
|
75
|
+
- `iosEnterpriseRuleSet`
|
|
76
|
+
- `backendRuleSet`
|
|
77
|
+
- `frontendRuleSet`
|
|
78
|
+
- `androidRuleSet`
|
|
79
|
+
- `astHeuristicsRuleSet` (feature-flagged)
|
|
80
|
+
|
|
81
|
+
Version map: `core/rules/presets/rulePackVersions.ts`.
|
|
82
|
+
|
|
83
|
+
## Evidence architecture
|
|
84
|
+
|
|
85
|
+
Writer path:
|
|
86
|
+
|
|
87
|
+
- `integrations/evidence/generateEvidence.ts`
|
|
88
|
+
- `buildEvidence`
|
|
89
|
+
- `writeEvidence`
|
|
90
|
+
|
|
91
|
+
Evidence properties:
|
|
92
|
+
|
|
93
|
+
- deterministic snapshot + ledger
|
|
94
|
+
- deduped findings
|
|
95
|
+
- stable JSON ordering
|
|
96
|
+
- platforms and rulesets traceability
|
|
97
|
+
|
|
98
|
+
Schema reference: `docs/evidence-v2.1.md`.
|
|
99
|
+
|
|
100
|
+
## CI architecture
|
|
101
|
+
|
|
102
|
+
- Reusable workflow: `.github/workflows/pumuki-gate-template.yml`
|
|
103
|
+
- Platform workflows:
|
|
104
|
+
- `.github/workflows/pumuki-ios.yml`
|
|
105
|
+
- `.github/workflows/pumuki-backend.yml`
|
|
106
|
+
- `.github/workflows/pumuki-frontend.yml`
|
|
107
|
+
- `.github/workflows/pumuki-android.yml`
|
|
108
|
+
|
|
109
|
+
Each run publishes `.ai_evidence.json` artifact.
|
|
110
|
+
|
|
111
|
+
## MCP architecture
|
|
112
|
+
|
|
113
|
+
Current active MCP integration in repo:
|
|
114
|
+
|
|
115
|
+
- `integrations/mcp/evidenceContextServer.ts`
|
|
116
|
+
- `integrations/mcp/evidenceContextServer.cli.ts`
|
|
117
|
+
|
|
118
|
+
Purpose: read-only exposure of evidence context for agents.
|
|
119
|
+
|
|
120
|
+
## Architectural guardrails
|
|
121
|
+
|
|
122
|
+
- Do not move decision logic from `core/*` into integrations.
|
|
123
|
+
- Do not couple integrations directly to each other when shared runtime exists.
|
|
124
|
+
- Prefer extending facts/rules/policies over adding ad-hoc shell conditions.
|
|
125
|
+
|
|
126
|
+
## Critical Module Map
|
|
127
|
+
|
|
128
|
+
Critical modules must document, at minimum:
|
|
129
|
+
|
|
130
|
+
- purpose (single responsibility),
|
|
131
|
+
- stable entrypoints (files consumed by other modules),
|
|
132
|
+
- deterministic invariants (behavior that must not change between refactors).
|
|
133
|
+
|
|
134
|
+
### MCP evidence payload and facets
|
|
135
|
+
|
|
136
|
+
Purpose:
|
|
137
|
+
- deterministic transformation from evidence snapshots to MCP facets/payloads.
|
|
138
|
+
|
|
139
|
+
Stable entrypoints:
|
|
140
|
+
- `integrations/mcp/evidenceFacetsBase.ts`
|
|
141
|
+
- `integrations/mcp/evidenceFacetsSuppressed.ts`
|
|
142
|
+
- `integrations/mcp/evidenceFacetsSuppressedBase.ts`
|
|
143
|
+
- `integrations/mcp/evidenceFacetsSuppressedRelations.ts`
|
|
144
|
+
- `integrations/mcp/evidenceFacetsSuppressedShare.ts`
|
|
145
|
+
- `integrations/mcp/evidenceFacetsSuppressedShareCore.ts`
|
|
146
|
+
- `integrations/mcp/evidenceFacetsSuppressedShareTriage.ts`
|
|
147
|
+
- `integrations/mcp/evidenceFacetsSnapshot.ts`
|
|
148
|
+
- `integrations/mcp/evidencePayloadConfig.ts`
|
|
149
|
+
- `integrations/mcp/evidencePayloadCollections.ts`
|
|
150
|
+
- `integrations/mcp/evidencePayloadSummary.ts`
|
|
151
|
+
|
|
152
|
+
Deterministic invariants:
|
|
153
|
+
- facet computation is pure from evidence inputs (no side effects).
|
|
154
|
+
- facet keys and tuple naming stay stable across releases.
|
|
155
|
+
- suppression and share metrics remain reproducible for the same snapshot.
|
|
156
|
+
|
|
157
|
+
### Git gate runtime
|
|
158
|
+
|
|
159
|
+
Purpose:
|
|
160
|
+
- orchestrate facts, rules, policies, and evidence emission for stage-gate decisions.
|
|
161
|
+
|
|
162
|
+
Stable entrypoints:
|
|
163
|
+
- `integrations/git/runPlatformGate.ts`
|
|
164
|
+
- `integrations/git/baselineRuleSets.ts`
|
|
165
|
+
|
|
166
|
+
Deterministic invariants:
|
|
167
|
+
- gate outcome depends only on facts + policy evaluation.
|
|
168
|
+
- evidence emission always includes stage/policy/ruleset traceability.
|
|
169
|
+
- stage runners remain thin wrappers over shared orchestration.
|
|
170
|
+
|
|
171
|
+
### Detector partitions
|
|
172
|
+
|
|
173
|
+
Purpose:
|
|
174
|
+
- expose stable detector barrels while keeping implementations split by concern.
|
|
175
|
+
|
|
176
|
+
Stable entrypoints:
|
|
177
|
+
- `core/facts/detectors/fs/sync.ts`
|
|
178
|
+
- `core/facts/detectors/process/index.ts`
|
|
179
|
+
|
|
180
|
+
Partition files:
|
|
181
|
+
- `core/facts/detectors/fs/syncPart1.ts`
|
|
182
|
+
- `core/facts/detectors/fs/syncPart2.ts`
|
|
183
|
+
- `core/facts/detectors/fs/syncPart3.ts`
|
|
184
|
+
- `core/facts/detectors/process/core.ts`
|
|
185
|
+
- `core/facts/detectors/process/shell.ts`
|
|
186
|
+
- `core/facts/detectors/process/spawn.ts`
|
|
187
|
+
|
|
188
|
+
Deterministic invariants:
|
|
189
|
+
- barrels define the public detector surface.
|
|
190
|
+
- partition internals may move, exported behavior and fact shapes must stay stable.
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Detailed Architecture (v2.x)
|
|
2
|
+
|
|
3
|
+
This document describes the active deterministic architecture implemented in this repository.
|
|
4
|
+
|
|
5
|
+
## Design goal
|
|
6
|
+
|
|
7
|
+
Provide a reproducible decision system for AI-assisted development with a strict separation between domain and integrations.
|
|
8
|
+
|
|
9
|
+
Primary pipeline:
|
|
10
|
+
|
|
11
|
+
`Facts -> Rules -> Gate -> ai_evidence v2.1`
|
|
12
|
+
|
|
13
|
+
## Layer boundaries
|
|
14
|
+
|
|
15
|
+
### `core/` (domain)
|
|
16
|
+
|
|
17
|
+
Pure logic without I/O or shell dependencies:
|
|
18
|
+
|
|
19
|
+
- `core/facts/*`
|
|
20
|
+
- `core/rules/*`
|
|
21
|
+
- `core/gate/*`
|
|
22
|
+
|
|
23
|
+
Responsibilities:
|
|
24
|
+
|
|
25
|
+
- Represent facts and conditions.
|
|
26
|
+
- Evaluate rules against facts.
|
|
27
|
+
- Evaluate gate outcome from findings.
|
|
28
|
+
|
|
29
|
+
### `integrations/` (adapters)
|
|
30
|
+
|
|
31
|
+
Runtime adapters around the domain:
|
|
32
|
+
|
|
33
|
+
- `integrations/git/*`
|
|
34
|
+
- `integrations/platform/*`
|
|
35
|
+
- `integrations/gate/*`
|
|
36
|
+
- `integrations/evidence/*`
|
|
37
|
+
- `integrations/mcp/*`
|
|
38
|
+
|
|
39
|
+
Responsibilities:
|
|
40
|
+
|
|
41
|
+
- Collect facts from Git scopes (staged/range).
|
|
42
|
+
- Resolve refs (`@{u}`, `GITHUB_BASE_REF`).
|
|
43
|
+
- Load rule packs and project overrides.
|
|
44
|
+
- Build/write deterministic evidence.
|
|
45
|
+
- Expose read-only evidence context via MCP endpoint.
|
|
46
|
+
|
|
47
|
+
Boundary rule:
|
|
48
|
+
|
|
49
|
+
- IDE/editor-specific diagnostics (provider-specific runtime validation) stay in `scripts/*` and `docs/validation/*`; they must not participate in core gate decisions.
|
|
50
|
+
|
|
51
|
+
## Stage execution architecture
|
|
52
|
+
|
|
53
|
+
### Shared runtime entry
|
|
54
|
+
|
|
55
|
+
`integrations/git/runPlatformGate.ts`
|
|
56
|
+
|
|
57
|
+
Responsibilities:
|
|
58
|
+
|
|
59
|
+
1. Build facts from selected scope.
|
|
60
|
+
2. Detect active platforms from facts.
|
|
61
|
+
3. Load baseline packs for detected platforms.
|
|
62
|
+
4. Optionally add heuristic facts/rules.
|
|
63
|
+
5. Merge project overrides.
|
|
64
|
+
6. Evaluate findings and gate decision.
|
|
65
|
+
7. Generate `.ai_evidence.json`.
|
|
66
|
+
8. Return process code (`0`/`1`).
|
|
67
|
+
|
|
68
|
+
### Stage runners
|
|
69
|
+
|
|
70
|
+
`integrations/git/stageRunners.ts`
|
|
71
|
+
|
|
72
|
+
- `runPreCommitStage()`
|
|
73
|
+
- `runPrePushStage()`
|
|
74
|
+
- `runCiStage()`
|
|
75
|
+
|
|
76
|
+
Policy source: `integrations/gate/stagePolicies.ts`.
|
|
77
|
+
|
|
78
|
+
Ref resolution source: `integrations/git/resolveGitRefs.ts`.
|
|
79
|
+
|
|
80
|
+
## Multi-platform model
|
|
81
|
+
|
|
82
|
+
Platform detection is combined in a single run:
|
|
83
|
+
|
|
84
|
+
- `ios`
|
|
85
|
+
- `backend`
|
|
86
|
+
- `frontend`
|
|
87
|
+
- `android`
|
|
88
|
+
|
|
89
|
+
Detector source: `integrations/platform/detectPlatforms.ts`.
|
|
90
|
+
|
|
91
|
+
Detected platforms drive baseline rule-pack loading and evidence `platforms` state.
|
|
92
|
+
|
|
93
|
+
## Rules architecture
|
|
94
|
+
|
|
95
|
+
Baseline packs:
|
|
96
|
+
|
|
97
|
+
- `iosEnterpriseRuleSet`
|
|
98
|
+
- `backendRuleSet`
|
|
99
|
+
- `frontendRuleSet`
|
|
100
|
+
- `androidRuleSet`
|
|
101
|
+
- `astHeuristicsRuleSet` (feature-flagged)
|
|
102
|
+
|
|
103
|
+
Versioning source:
|
|
104
|
+
|
|
105
|
+
- `core/rules/presets/rulePackVersions.ts`
|
|
106
|
+
|
|
107
|
+
Merge strategy:
|
|
108
|
+
|
|
109
|
+
- Baseline first, then project overrides.
|
|
110
|
+
- Locked baseline protections are enforced unless explicitly relaxed.
|
|
111
|
+
|
|
112
|
+
## Evidence architecture (v2.1)
|
|
113
|
+
|
|
114
|
+
Schema source: `integrations/evidence/schema.ts`.
|
|
115
|
+
|
|
116
|
+
Writer path:
|
|
117
|
+
|
|
118
|
+
- `integrations/evidence/generateEvidence.ts`
|
|
119
|
+
- `buildEvidence`
|
|
120
|
+
- `writeEvidence`
|
|
121
|
+
|
|
122
|
+
Deterministic properties:
|
|
123
|
+
|
|
124
|
+
- `snapshot` + `ledger`
|
|
125
|
+
- deduped findings
|
|
126
|
+
- stable output order
|
|
127
|
+
- per-run `rulesets` hash traceability
|
|
128
|
+
|
|
129
|
+
## CI architecture
|
|
130
|
+
|
|
131
|
+
Reusable template:
|
|
132
|
+
|
|
133
|
+
- `.github/workflows/pumuki-gate-template.yml`
|
|
134
|
+
|
|
135
|
+
Platform workflows:
|
|
136
|
+
|
|
137
|
+
- `.github/workflows/pumuki-ios.yml`
|
|
138
|
+
- `.github/workflows/pumuki-backend.yml`
|
|
139
|
+
- `.github/workflows/pumuki-frontend.yml`
|
|
140
|
+
- `.github/workflows/pumuki-android.yml`
|
|
141
|
+
|
|
142
|
+
All workflows use shared runner path + upload `.ai_evidence.json` artifact.
|
|
143
|
+
|
|
144
|
+
## MCP architecture
|
|
145
|
+
|
|
146
|
+
Read-only context server:
|
|
147
|
+
|
|
148
|
+
- `integrations/mcp/evidenceContextServer.ts`
|
|
149
|
+
- CLI: `integrations/mcp/evidenceContextServer.cli.ts`
|
|
150
|
+
|
|
151
|
+
Contract:
|
|
152
|
+
|
|
153
|
+
- serves evidence only when `version === "2.1"`
|
|
154
|
+
- health endpoint + deterministic error behavior
|
|
155
|
+
|
|
156
|
+
## Extension points (current model)
|
|
157
|
+
|
|
158
|
+
- Add typed facts in `core/facts/*`.
|
|
159
|
+
- Add declarative rules in `core/rules/presets/*`.
|
|
160
|
+
- Add platform detector in `integrations/platform/*`.
|
|
161
|
+
- Add stage/runner wrappers in `integrations/git/*` reusing shared runtime.
|
|
162
|
+
|
|
163
|
+
Constraint:
|
|
164
|
+
|
|
165
|
+
- Keep domain pure (`core/*`), keep shell and file I/O in integrations.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# AST Heuristics Reintroduction Plan (Post-Validation)
|
|
2
|
+
|
|
3
|
+
This document defines how to reintroduce selective AST heuristics after core validation is stable.
|
|
4
|
+
|
|
5
|
+
## Validation gate before implementation
|
|
6
|
+
|
|
7
|
+
Do not enable new semantic extractors until:
|
|
8
|
+
|
|
9
|
+
- TypeScript baseline is clean for `core/**` and `integrations/**`
|
|
10
|
+
- Existing multi-platform PRE_COMMIT/PRE_PUSH/CI flows remain deterministic
|
|
11
|
+
- Evidence output stays on schema `version: "2.1"`
|
|
12
|
+
|
|
13
|
+
## Initial heuristic backlog
|
|
14
|
+
|
|
15
|
+
### iOS (Swift)
|
|
16
|
+
|
|
17
|
+
- Detect force unwrap usage by AST node analysis
|
|
18
|
+
- Detect `AnyView` usage by type reference, not text match
|
|
19
|
+
- Detect callback-style APIs outside approved bridge layers
|
|
20
|
+
|
|
21
|
+
### Backend / Frontend (TypeScript)
|
|
22
|
+
|
|
23
|
+
- Detect empty `catch` blocks by AST
|
|
24
|
+
- Detect unrestricted `any` usage by node kind
|
|
25
|
+
- Detect production `console.log` in executable code paths
|
|
26
|
+
|
|
27
|
+
### Android (Kotlin)
|
|
28
|
+
|
|
29
|
+
- Detect `Thread.sleep` invocation nodes
|
|
30
|
+
- Detect `GlobalScope` usage in production paths
|
|
31
|
+
- Detect `runBlocking` outside test/source-set exceptions
|
|
32
|
+
|
|
33
|
+
## Integration contract
|
|
34
|
+
|
|
35
|
+
- New semantics should be emitted as typed Facts in `core/facts/*`.
|
|
36
|
+
- Rules remain declarative in Rule Packs and evaluated by existing gate.
|
|
37
|
+
- No changes to evidence contract except additive typed fields when required.
|
|
38
|
+
|
|
39
|
+
## Rollout phases
|
|
40
|
+
|
|
41
|
+
1. Add Facts behind feature flag (default off).
|
|
42
|
+
2. Add rules consuming those Facts with `WARN` severity first.
|
|
43
|
+
3. Promote selected rules to `ERROR`/`CRITICAL` after project validation window.
|
|
44
|
+
|
|
45
|
+
## Feature flag
|
|
46
|
+
|
|
47
|
+
- Flag: `PUMUKI_ENABLE_AST_HEURISTICS`
|
|
48
|
+
- Values that enable: `1`, `true`, `yes`, `on`
|
|
49
|
+
- Default: disabled
|
|
50
|
+
|
|
51
|
+
When enabled, the gate records `astHeuristicsRuleSet@0.4.0` in evidence `rulesets[]`.
|
|
52
|
+
|
|
53
|
+
For GitHub Actions gates using the reusable workflow template:
|
|
54
|
+
|
|
55
|
+
- Input: `enable_ast_heuristics: true`
|
|
56
|
+
|
|
57
|
+
Current pilot implemented:
|
|
58
|
+
|
|
59
|
+
- `heuristics.ts.empty-catch.ast`
|
|
60
|
+
- `heuristics.ts.explicit-any.ast`
|
|
61
|
+
- `heuristics.ts.console-log.ast`
|
|
62
|
+
- `heuristics.ios.force-unwrap.ast`
|
|
63
|
+
- `heuristics.ios.anyview.ast`
|
|
64
|
+
- `heuristics.ios.force-try.ast`
|
|
65
|
+
- `heuristics.ios.force-cast.ast`
|
|
66
|
+
- `heuristics.ios.callback-style.ast`
|
|
67
|
+
- `heuristics.android.thread-sleep.ast`
|
|
68
|
+
- `heuristics.android.globalscope.ast`
|
|
69
|
+
- `heuristics.android.run-blocking.ast`
|
|
70
|
+
- Scope: `apps/frontend/**`, `apps/web/**`, and `apps/backend/**` TypeScript files (`.ts`, `.tsx`)
|
|
71
|
+
- Scope exclusions: test paths (`__tests__`, `tests`, `*.spec.*`, `*.test.*`)
|
|
72
|
+
- Detection: semantic AST parse of `catch {}` with empty block
|
|
73
|
+
- Detection: semantic AST parse of explicit `any` type usage (TS/TSX)
|
|
74
|
+
- Detection: semantic AST parse of `console.log(...)` invocation nodes
|
|
75
|
+
- Scope: `apps/ios/**` Swift files (`.swift`)
|
|
76
|
+
- Scope exclusions: iOS test paths (`/Tests/`, `/tests/`, `*Test.swift`, `*Tests.swift`)
|
|
77
|
+
- Scope exclusions: bridge layers (`/Bridge/`, `/Bridges/`, `*Bridge.swift`)
|
|
78
|
+
- Detection: token-aware scan for force unwrap operator usage (`value!`) outside comments/strings
|
|
79
|
+
- Detection: token-aware scan for `AnyView` type erasure usage outside comments/strings
|
|
80
|
+
- Detection: token-aware scan for force try usage (`try!`) outside comments/strings
|
|
81
|
+
- Detection: token-aware scan for force cast usage (`as!`) outside comments/strings
|
|
82
|
+
- Detection: token-aware scan for callback-style signatures (`@escaping` + completion/handler) outside bridge layers
|
|
83
|
+
- Scope: `apps/android/**` Kotlin files (`.kt`, `.kts`)
|
|
84
|
+
- Scope exclusions: Android test paths (`/test/`, `/androidTest/`, `*Test.kt`, `*Tests.kt`)
|
|
85
|
+
- Detection: token-aware scan for `Thread.sleep(...)` usage in production Kotlin code
|
|
86
|
+
- Detection: token-aware scan for `GlobalScope.launch/async/...` usage in production Kotlin code
|
|
87
|
+
- Detection: token-aware scan for `runBlocking(...)` usage in production Kotlin code
|
|
88
|
+
- Severity: `WARN`
|