@dailephd/my-dev-kit-lab 0.4.4 → 0.4.6

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.
Files changed (225) hide show
  1. package/CHANGELOG.md +484 -0
  2. package/README.md +39 -3
  3. package/dist/scripts/cli.js +9 -0
  4. package/dist/src/audits/core/typescriptJavaScriptAnalyzer.js +30 -12
  5. package/dist/src/cli/help.js +300 -0
  6. package/dist/src/cli/index.js +2 -0
  7. package/dist/src/cli/runLabCli.js +229 -0
  8. package/dist/src/commands/runAuditCommand.js +132 -0
  9. package/dist/src/commands/runControlledExperimentCommand.js +7 -3
  10. package/dist/{scripts/experiments/describeExperiment.js → src/commands/runExperimentDescribeCommand.js} +14 -10
  11. package/dist/{scripts/experiments/listExperiments.js → src/commands/runExperimentListCommand.js} +3 -6
  12. package/dist/{scripts/experiments/runExperiment.js → src/commands/runExperimentRunCommand.js} +80 -22
  13. package/dist/src/commands/runFinalDemoCommand.js +2 -3
  14. package/dist/src/commands/runSecurityValidationCommand.js +271 -0
  15. package/dist/src/evaluation/ecosystemFixtures/index.js +3 -0
  16. package/dist/src/evaluation/ecosystemFixtures/loadContextIntegrityFixture.js +102 -0
  17. package/dist/src/evaluation/ecosystemFixtures/manifestTypes.js +1 -0
  18. package/dist/src/evaluation/ecosystemFixtures/validateManifest.js +82 -0
  19. package/dist/src/evaluation/ecosystemFixtures/verifyFixtureHashes.js +45 -0
  20. package/dist/src/evaluation/stageContextMetrics/calculateAllocationMetrics.js +169 -0
  21. package/dist/src/evaluation/stageContextMetrics/calculateConditionCoverageMetrics.js +74 -0
  22. package/dist/src/evaluation/stageContextMetrics/calculateProducerConditionAgreement.js +113 -0
  23. package/dist/src/evaluation/stageContextMetrics/calculateReadinessAgreement.js +60 -0
  24. package/dist/src/evaluation/stageContextMetrics/calculateRunIntegrityAgreement.js +309 -0
  25. package/dist/src/evaluation/stageContextMetrics/calculateSupplementalRawAgreement.js +12 -2
  26. package/dist/src/evaluation/stageContextMetrics/calculateTruncationClassification.js +100 -0
  27. package/dist/src/evaluation/stageContextMetrics/evaluateProducerReadinessBridge.js +76 -5
  28. package/dist/src/evaluation/stageContextMetrics/index.js +4 -0
  29. package/dist/src/evaluation/stageContextMetrics/runIntegrityAgreementTypes.js +1 -0
  30. package/dist/src/evaluation/stageContextSelectors/contextArtifactConsistency.js +7 -0
  31. package/dist/src/evaluation/stageContextSelectors/index.js +1 -0
  32. package/dist/src/evaluation/stageContextSelectors/orchestratorRunIntegritySelectors.js +64 -0
  33. package/dist/src/evaluation/upstreamArtifacts/index.js +2 -0
  34. package/dist/src/evaluation/upstreamArtifacts/orchestratorRunIntegrityV1.js +33 -0
  35. package/dist/src/evaluation/upstreamArtifacts/readOrchestratorRunIntegrityV1.js +9 -0
  36. package/dist/src/evaluation/upstreamArtifacts/validateMyDevKitContextCapsuleV1.js +59 -2
  37. package/dist/src/evaluation/upstreamArtifacts/validateMyDevKitRetrievalAuditRecordV1.js +6 -1
  38. package/dist/src/evaluation/upstreamArtifacts/validateOrchestratorRunIntegrityV1.js +177 -0
  39. package/dist/src/report/experiments/buildContextIntegrityReport.js +204 -0
  40. package/dist/src/report/experiments/contextIntegrityReportModel.js +1 -0
  41. package/dist/src/report/experiments/index.js +5 -0
  42. package/dist/src/report/experiments/renderContextIntegrityHtml.js +98 -0
  43. package/dist/src/report/experiments/renderContextIntegrityJsonReport.js +3 -0
  44. package/dist/src/report/experiments/renderContextIntegrityText.js +111 -0
  45. package/dist/src/runtime/index.js +3 -0
  46. package/dist/src/runtime/labExecutionContext.js +22 -0
  47. package/dist/src/runtime/packageResource.js +22 -0
  48. package/dist/src/runtime/packageRoot.js +37 -0
  49. package/dist/src/securityValidation/packageChecks/requiredPackageContents.js +46 -0
  50. package/dist/src/securityValidation/packageChecks/runPackageChecks.js +11 -5
  51. package/docs/METRICS.md +83 -0
  52. package/package.json +10 -8
  53. package/dist/scripts/audits/runAudit.js +0 -135
  54. package/dist/scripts/build-gallery.js +0 -3
  55. package/dist/scripts/capture-demo-report.js +0 -3
  56. package/dist/scripts/evaluate-token-savings.js +0 -2
  57. package/dist/scripts/generate-experiment-plots.js +0 -3
  58. package/dist/scripts/generate-prompt-variants.js +0 -2
  59. package/dist/scripts/render-experiment-report.js +0 -2
  60. package/dist/scripts/run-agent-prompt.js +0 -2
  61. package/dist/scripts/run-controlled-experiment.js +0 -2
  62. package/dist/scripts/run-lab-demo.js +0 -5
  63. package/dist/scripts/run-visualization-demos.js +0 -3
  64. package/dist/scripts/security/resolveToolRoot.js +0 -16
  65. package/dist/scripts/security/runCodeql.js +0 -58
  66. package/dist/scripts/security/runDependencyChecks.js +0 -58
  67. package/dist/scripts/security/runFuzzSmoke.js +0 -29
  68. package/dist/scripts/security/runPackageChecks.js +0 -57
  69. package/dist/scripts/security/runSemgrep.js +0 -64
  70. package/dist/scripts/security/validate.js +0 -266
  71. package/dist/scripts/verify-benchmarks.js +0 -202
  72. package/examples/demo-report-input.json +0 -78
  73. package/examples/lab-demo-cases.json +0 -35
  74. package/examples/real-agent-campaign-cases.json +0 -118
  75. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/debug/res/xml/ambiguous_backup_rules.xml +0 -4
  76. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/ambiguous_backup_rules.xml +0 -4
  77. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/backup_rules.xml +0 -5
  78. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/broad_backup_rules.xml +0 -4
  79. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/data_extraction_rules.xml +0 -10
  80. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/unsupported_domain_rules.xml +0 -4
  81. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-b/src/main/res/xml/malformed_backup_rules.xml +0 -4
  82. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-b/src/main/res/xml/unsupported_root.xml +0 -4
  83. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/debug/res/xml/ambiguous_config.xml +0 -4
  84. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/ambiguous_config.xml +0 -4
  85. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/base_cleartext_false.xml +0 -8
  86. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/broad_and_duplicate_domains.xml +0 -8
  87. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/empty_domain.xml +0 -6
  88. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/malformed_pin.xml +0 -11
  89. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/network_security_config.xml +0 -26
  90. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-b/src/main/res/xml/malformed_network_security_config.xml +0 -6
  91. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-b/src/main/res/xml/unsupported_root.xml +0 -4
  92. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/groovy-release-debuggable-dynamic.gradle +0 -7
  93. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/groovy-release-debuggable-false.gradle +0 -9
  94. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/groovy-release-debuggable-true.gradle +0 -13
  95. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/kotlin-release-debuggable-false.gradle.kts +0 -7
  96. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/kotlin-release-debuggable-true.gradle.kts +0 -10
  97. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/missing-release-build-type.gradle.kts +0 -7
  98. package/tests/fixtures/android/advanced-security-fixtures/resource-resolution/module-a/src/debug/res/xml/network_security_config.xml +0 -8
  99. package/tests/fixtures/android/advanced-security-fixtures/resource-resolution/module-a/src/main/res/xml/backup_rules.xml +0 -4
  100. package/tests/fixtures/android/advanced-security-fixtures/resource-resolution/module-a/src/main/res/xml/network_security_config.xml +0 -8
  101. package/tests/fixtures/android/advanced-security-fixtures/resource-resolution/module-b/src/main/res/xml/malformed_network_security_config.xml +0 -7
  102. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/SampleActivity.java +0 -8
  103. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/SampleActivity.kt +0 -9
  104. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/build.gradle +0 -11
  105. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/build.gradle.kts +0 -11
  106. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/google-services.json +0 -16
  107. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/local.properties +0 -3
  108. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates-bounds/module/binary.properties +0 -0
  109. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates-bounds/module/oversized.json +0 -1
  110. package/tests/fixtures/android/advanced-security-fixtures/signing-configuration/app/fake-release-keystore.jks +0 -1
  111. package/tests/fixtures/android/advanced-security-fixtures/signing-configuration/build/generated-fake.keystore +0 -1
  112. package/tests/fixtures/android/compose-app/app/build.gradle.kts +0 -21
  113. package/tests/fixtures/android/compose-app/app/src/main/AndroidManifest.xml +0 -22
  114. package/tests/fixtures/android/compose-app/app/src/main/java/com/example/composeapp/MainActivity.kt +0 -11
  115. package/tests/fixtures/android/compose-app/build.gradle.kts +0 -4
  116. package/tests/fixtures/android/compose-app/gradle/wrapper/gradle-wrapper.properties +0 -4
  117. package/tests/fixtures/android/compose-app/settings.gradle.kts +0 -2
  118. package/tests/fixtures/android/gradle-metadata-fixtures/catalog-only-plugin/build.gradle.kts +0 -3
  119. package/tests/fixtures/android/gradle-metadata-fixtures/catalog-only-plugin/gradle/libs.versions.toml +0 -5
  120. package/tests/fixtures/android/gradle-metadata-fixtures/comment-safety.gradle.kts +0 -21
  121. package/tests/fixtures/android/gradle-metadata-fixtures/dynamic-values.gradle.kts +0 -17
  122. package/tests/fixtures/android/gradle-metadata-fixtures/groovy-literal.gradle +0 -23
  123. package/tests/fixtures/android/gradle-metadata-fixtures/wrapper-malformed.properties +0 -4
  124. package/tests/fixtures/android/gradle-metadata-fixtures/wrapper-missing-url.properties +0 -3
  125. package/tests/fixtures/android/gradle-metadata-fixtures/wrapper-with-checksum.properties +0 -5
  126. package/tests/fixtures/android/java-app/app/build.gradle +0 -16
  127. package/tests/fixtures/android/java-app/app/src/main/AndroidManifest.xml +0 -19
  128. package/tests/fixtures/android/java-app/app/src/main/java/com/example/javaapp/MainActivity.java +0 -4
  129. package/tests/fixtures/android/java-app/build.gradle +0 -3
  130. package/tests/fixtures/android/java-app/gradle/wrapper/gradle-wrapper.properties +0 -4
  131. package/tests/fixtures/android/java-app/settings.gradle +0 -2
  132. package/tests/fixtures/android/library/build.gradle.kts +0 -3
  133. package/tests/fixtures/android/library/gradle/wrapper/gradle-wrapper.properties +0 -4
  134. package/tests/fixtures/android/library/mylibrary/build.gradle.kts +0 -13
  135. package/tests/fixtures/android/library/mylibrary/src/main/AndroidManifest.xml +0 -2
  136. package/tests/fixtures/android/library/settings.gradle.kts +0 -2
  137. package/tests/fixtures/android/manifest-audit-fixtures/incomplete-intent-filter.xml +0 -14
  138. package/tests/fixtures/android/manifest-audit-fixtures/malformed-exported.xml +0 -10
  139. package/tests/fixtures/android/manifest-audit-fixtures/malformed.xml +0 -5
  140. package/tests/fixtures/android/manifest-audit-fixtures/missing-application.xml +0 -7
  141. package/tests/fixtures/android/manifest-audit-fixtures/missing-component-name.xml +0 -11
  142. package/tests/fixtures/android/manifest-audit-fixtures/permission-coverage.xml +0 -29
  143. package/tests/fixtures/android/manifest-audit-fixtures/risky-components.xml +0 -62
  144. package/tests/fixtures/android/manifest-audit-fixtures/risky-deep-links.xml +0 -45
  145. package/tests/fixtures/android/manifest-audit-fixtures/unresolved-placeholder.xml +0 -14
  146. package/tests/fixtures/android/manifest-audit-fixtures/unusual-namespace-prefix.xml +0 -11
  147. package/tests/fixtures/android/multi-module/app/build.gradle.kts +0 -22
  148. package/tests/fixtures/android/multi-module/app/src/androidTest/java/com/example/multimodule/app/ExampleInstrumentedTest.kt +0 -3
  149. package/tests/fixtures/android/multi-module/app/src/main/AndroidManifest.xml +0 -11
  150. package/tests/fixtures/android/multi-module/app/src/test/java/com/example/multimodule/app/ExampleUnitTest.kt +0 -3
  151. package/tests/fixtures/android/multi-module/build.gradle.kts +0 -5
  152. package/tests/fixtures/android/multi-module/core/build.gradle.kts +0 -14
  153. package/tests/fixtures/android/multi-module/core/src/main/AndroidManifest.xml +0 -2
  154. package/tests/fixtures/android/multi-module/feature-login/build.gradle.kts +0 -18
  155. package/tests/fixtures/android/multi-module/feature-login/src/main/AndroidManifest.xml +0 -2
  156. package/tests/fixtures/android/multi-module/gradle/libs.versions.toml +0 -8
  157. package/tests/fixtures/android/multi-module/gradle/wrapper/gradle-wrapper.properties +0 -4
  158. package/tests/fixtures/android/multi-module/settings.gradle.kts +0 -4
  159. package/tests/fixtures/android/non-android-gradle/build.gradle.kts +0 -3
  160. package/tests/fixtures/android/non-android-gradle/core/build.gradle.kts +0 -3
  161. package/tests/fixtures/android/non-android-gradle/core/src/main/java/com/example/core/Core.java +0 -4
  162. package/tests/fixtures/android/non-android-gradle/gradle/wrapper/gradle-wrapper.properties +0 -4
  163. package/tests/fixtures/android/non-android-gradle/settings.gradle.kts +0 -2
  164. package/tests/fixtures/android/partial/app/build.gradle.kts +0 -7
  165. package/tests/fixtures/android/partial/settings.gradle.kts +0 -2
  166. package/tests/fixtures/android/xml-view-app/app/build.gradle.kts +0 -17
  167. package/tests/fixtures/android/xml-view-app/app/src/main/AndroidManifest.xml +0 -31
  168. package/tests/fixtures/android/xml-view-app/app/src/main/kotlin/com/example/xmlviewapp/MainActivity.kt +0 -7
  169. package/tests/fixtures/android/xml-view-app/app/src/main/res/layout/activity_main.xml +0 -4
  170. package/tests/fixtures/android/xml-view-app/build.gradle.kts +0 -4
  171. package/tests/fixtures/android/xml-view-app/gradle/wrapper/gradle-wrapper.properties +0 -4
  172. package/tests/fixtures/android/xml-view-app/settings.gradle.kts +0 -2
  173. package/tests/fixtures/audits/mixed-language/mixed-docs-claims/README.md +0 -16
  174. package/tests/fixtures/audits/mixed-language/mixed-docs-claims/build.gradle.kts +0 -4
  175. package/tests/fixtures/audits/mixed-language/mixed-docs-claims/src/main/java/com/example/Widget.java +0 -7
  176. package/tests/fixtures/audits/mixed-language/mixed-docs-claims/src/main/kotlin/com/example/Gadget.kt +0 -7
  177. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/README.md +0 -10
  178. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/build/Main.class +0 -1
  179. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/dist/index.js +0 -1
  180. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/generated/schema.ts +0 -1
  181. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/src/index.ts +0 -3
  182. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/vendor/lib.py +0 -2
  183. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/README.md +0 -10
  184. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/build.gradle.kts +0 -8
  185. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/settings.gradle.kts +0 -1
  186. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/src/main/java/com/example/FooService.java +0 -7
  187. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/src/main/kotlin/com/example/BarService.kt +0 -7
  188. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/src/test/java/com/example/FooServiceTest.java +0 -8
  189. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/src/test/kotlin/com/example/BarServiceTest.kt +0 -8
  190. package/tests/fixtures/audits/mixed-language/mixed-python-ts/README.md +0 -8
  191. package/tests/fixtures/audits/mixed-language/mixed-python-ts/src/app.py +0 -7
  192. package/tests/fixtures/audits/mixed-language/mixed-python-ts/src/index.ts +0 -3
  193. package/tests/fixtures/audits/mixed-language/mixed-python-ts/tests/test_app.py +0 -5
  194. package/tests/fixtures/audits/mixed-language/mixed-ts-js/README.md +0 -7
  195. package/tests/fixtures/audits/mixed-language/mixed-ts-js/src/helper.js +0 -5
  196. package/tests/fixtures/audits/mixed-language/mixed-ts-js/src/index.ts +0 -3
  197. package/tests/fixtures/audits/mixed-language/mixed-ts-js/tests/index.sample.ts +0 -5
  198. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/README.md +0 -10
  199. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/build.gradle.kts +0 -4
  200. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/pytests/test_app.py +0 -5
  201. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/app.py +0 -2
  202. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/helper.js +0 -5
  203. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/index.ts +0 -3
  204. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/main/java/com/example/Multiplier.java +0 -7
  205. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/main/kotlin/com/example/Divider.kt +0 -7
  206. package/tests/fixtures/fake-adversarial-cli.js +0 -152
  207. package/tests/fixtures/fake-my-dev-kit-cli.js +0 -83
  208. package/tests/fixtures/full-workflow-library/complete-v1.0.0.json +0 -24
  209. package/tests/fixtures/full-workflow-library/future-minor-v1.1.0-additive.json +0 -25
  210. package/tests/fixtures/stage-context-expectations/complete-v1.0.0.json +0 -230
  211. package/tests/fixtures/stage-context-expectations/future-minor-v1.1.0-additive.json +0 -232
  212. package/tests/fixtures/stage-context-expectations/invalid/malformed-json.txt +0 -1
  213. package/tests/fixtures/stage-context-expectations/invalid/non-object-root.json +0 -1
  214. package/tests/fixtures/stage-context-expectations/minimal-v1.0.0.json +0 -18
  215. package/tests/fixtures/upstream-artifacts/invalid/malformed-json.txt +0 -1
  216. package/tests/fixtures/upstream-artifacts/invalid/non-object-root.json +0 -1
  217. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/context-capsule/complete-v1.0.0.json +0 -504
  218. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/context-capsule/future-minor-v1.1.0-additive.json +0 -955
  219. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/retrieval-audit-record/complete-v1.0.0.json +0 -190
  220. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/retrieval-audit-record/future-minor-v1.1.0-additive.json +0 -327
  221. package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/PROVENANCE.txt +0 -13
  222. package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/context-capsule.json +0 -7874
  223. package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/retrieval-audit-record.json +0 -1076
  224. package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.1/workflow-instruction-packet/complete-v1.0.0.json +0 -160
  225. package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.1/workflow-instruction-packet/future-minor-v1.1.0-additive.json +0 -186
@@ -1,160 +0,0 @@
1
- {
2
- "schemaVersion": "1.0.0",
3
- "catalogSchemaVersion": "1.0.0",
4
- "catalogVersion": "1.0.0",
5
- "workflowId": "workflow.feature",
6
- "stageId": "stage.feature.implementation",
7
- "primaryEntry": {
8
- "id": "stage.feature.implementation",
9
- "kind": "stage",
10
- "title": "Implementation stage",
11
- "description": "Implement the requested feature.",
12
- "workflowRef": "workflow.feature",
13
- "stageName": "implementation",
14
- "commandRefs": ["command.repo.build"],
15
- "ruleRefs": ["rule.quality.no-dead-code"],
16
- "optionalCommandRefs": ["command.repo.lint"],
17
- "optionalRuleRefs": ["rule.quality.prefer-tests"],
18
- "reportContractRef": "report.implementation-summary",
19
- "taskInstructions": "Implement the feature and keep behavior backward compatible.",
20
- "validationRequirements": ["Run the build.", "Run the test suite."],
21
- "stopConditions": ["Stop if the build fails."]
22
- },
23
- "resolvedCommands": [
24
- {
25
- "id": "command.repo.build",
26
- "kind": "command",
27
- "title": "Build the repository",
28
- "description": "Compiles all TypeScript sources.",
29
- "owner": "repo",
30
- "command": "npm run build",
31
- "purpose": "Confirm the project compiles.",
32
- "sideEffect": "read-only",
33
- "included": "required"
34
- },
35
- {
36
- "id": "command.repo.lint",
37
- "kind": "command",
38
- "title": "Lint the repository",
39
- "description": "Runs the linter.",
40
- "owner": "repo",
41
- "command": "npm run lint",
42
- "purpose": "Confirm style conformance.",
43
- "sideEffect": "read-only",
44
- "included": "optional"
45
- }
46
- ],
47
- "resolvedRules": [
48
- {
49
- "id": "rule.quality.no-dead-code",
50
- "kind": "rule",
51
- "title": "No dead code",
52
- "description": "Do not leave unreachable code behind.",
53
- "category": "quality",
54
- "instruction": "Remove unreachable code before finishing the stage.",
55
- "ruleRefs": [],
56
- "included": "required",
57
- "depth": 0
58
- },
59
- {
60
- "id": "rule.quality.prefer-tests",
61
- "kind": "rule",
62
- "title": "Prefer tests",
63
- "description": "Prefer covering new behavior with tests.",
64
- "category": "quality",
65
- "instruction": "Add or update tests for new behavior.",
66
- "ruleRefs": ["rule.quality.no-dead-code"],
67
- "included": "optional",
68
- "depth": 1
69
- }
70
- ],
71
- "reportContract": {
72
- "id": "report.implementation-summary",
73
- "kind": "report-contract",
74
- "title": "Implementation summary report",
75
- "description": "Summarizes the implementation stage outcome.",
76
- "artifactKind": "implementation-summary",
77
- "purpose": "Give reviewers a concise implementation summary.",
78
- "requiredOutputCategory": "summary"
79
- },
80
- "validationRequirements": ["Run the build.", "Run the test suite."],
81
- "stopConditions": ["Stop if the build fails."],
82
- "resolutionProvenance": [
83
- {
84
- "rootWorkflowId": "workflow.feature",
85
- "rootStageId": "stage.feature.implementation",
86
- "sourceEntryId": "stage.feature.implementation",
87
- "referenceField": "commandRefs",
88
- "referencedEntryId": "command.repo.build",
89
- "inclusionReason": "required command reference",
90
- "depth": 0
91
- },
92
- {
93
- "rootWorkflowId": "workflow.feature",
94
- "rootStageId": "stage.feature.implementation",
95
- "sourceEntryId": "stage.feature.implementation",
96
- "referenceField": "ruleRefs",
97
- "referencedEntryId": "rule.quality.no-dead-code",
98
- "inclusionReason": "required rule reference",
99
- "depth": 0
100
- }
101
- ],
102
- "budget": {
103
- "findings": [
104
- {
105
- "limitName": "maxCommands",
106
- "declaredLimit": 20,
107
- "used": 2,
108
- "available": 18,
109
- "overLimit": false,
110
- "amountExceeded": 0,
111
- "affectedEntryIds": []
112
- },
113
- {
114
- "limitName": "maxRuleDepth",
115
- "declaredLimit": null,
116
- "used": 1,
117
- "available": null,
118
- "overLimit": false,
119
- "amountExceeded": 0,
120
- "affectedEntryIds": []
121
- }
122
- ],
123
- "overLimit": false,
124
- "adequate": true,
125
- "totalCharacters": 3200,
126
- "perEntryCharacters": {
127
- "stage.feature.implementation": 1800,
128
- "command.repo.build": 200,
129
- "rule.quality.no-dead-code": 150
130
- }
131
- },
132
- "truncation": {
133
- "truncated": false,
134
- "records": [
135
- {
136
- "rootOptionalEntryId": "command.repo.lint",
137
- "affectedEntryIds": ["command.repo.lint"],
138
- "limitingField": "maxCommands",
139
- "declaredLimit": 20,
140
- "usedBefore": 1,
141
- "attemptedAfter": 2,
142
- "reason": "included within budget"
143
- }
144
- ],
145
- "droppedOptionalCommandIds": [],
146
- "droppedOptionalRuleIds": [],
147
- "droppedOptionalDependencyIds": [],
148
- "warnings": []
149
- },
150
- "adequacy": {
151
- "status": "adequate",
152
- "reasons": [],
153
- "requiredContentComplete": true,
154
- "requiredBudgetSatisfied": true,
155
- "optionalContentDropped": false,
156
- "affectedEntryIds": []
157
- },
158
- "unresolvedReferences": ["command.repo.unresolved-example"],
159
- "warnings": []
160
- }
@@ -1,186 +0,0 @@
1
- {
2
- "schemaVersion": "1.1.0",
3
- "catalogSchemaVersion": "1.0.0",
4
- "catalogVersion": "1.0.0",
5
- "workflowId": "workflow.feature",
6
- "stageId": "stage.feature.implementation",
7
- "primaryEntry": {
8
- "id": "stage.feature.implementation",
9
- "kind": "stage",
10
- "title": "Implementation stage",
11
- "description": "Implement the requested feature.",
12
- "workflowRef": "workflow.feature",
13
- "stageName": "implementation",
14
- "commandRefs": [
15
- "command.repo.build"
16
- ],
17
- "ruleRefs": [
18
- "rule.quality.no-dead-code"
19
- ],
20
- "optionalCommandRefs": [
21
- "command.repo.lint"
22
- ],
23
- "optionalRuleRefs": [
24
- "rule.quality.prefer-tests"
25
- ],
26
- "reportContractRef": "report.implementation-summary",
27
- "taskInstructions": "Implement the feature and keep behavior backward compatible.",
28
- "validationRequirements": [
29
- "Run the build.",
30
- "Run the test suite."
31
- ],
32
- "stopConditions": [
33
- "Stop if the build fails."
34
- ]
35
- },
36
- "resolvedCommands": [
37
- {
38
- "id": "command.repo.build",
39
- "kind": "command",
40
- "title": "Build the repository",
41
- "description": "Compiles all TypeScript sources.",
42
- "owner": "repo",
43
- "command": "npm run build",
44
- "purpose": "Confirm the project compiles.",
45
- "sideEffect": "read-only",
46
- "included": "required"
47
- },
48
- {
49
- "id": "command.repo.lint",
50
- "kind": "command",
51
- "title": "Lint the repository",
52
- "description": "Runs the linter.",
53
- "owner": "repo",
54
- "command": "npm run lint",
55
- "purpose": "Confirm style conformance.",
56
- "sideEffect": "read-only",
57
- "included": "optional"
58
- }
59
- ],
60
- "resolvedRules": [
61
- {
62
- "id": "rule.quality.no-dead-code",
63
- "kind": "rule",
64
- "title": "No dead code",
65
- "description": "Do not leave unreachable code behind.",
66
- "category": "quality",
67
- "instruction": "Remove unreachable code before finishing the stage.",
68
- "ruleRefs": [],
69
- "included": "required",
70
- "depth": 0
71
- },
72
- {
73
- "id": "rule.quality.prefer-tests",
74
- "kind": "rule",
75
- "title": "Prefer tests",
76
- "description": "Prefer covering new behavior with tests.",
77
- "category": "quality",
78
- "instruction": "Add or update tests for new behavior.",
79
- "ruleRefs": [
80
- "rule.quality.no-dead-code"
81
- ],
82
- "included": "optional",
83
- "depth": 1
84
- }
85
- ],
86
- "reportContract": {
87
- "id": "report.implementation-summary",
88
- "kind": "report-contract",
89
- "title": "Implementation summary report",
90
- "description": "Summarizes the implementation stage outcome.",
91
- "artifactKind": "implementation-summary",
92
- "purpose": "Give reviewers a concise implementation summary.",
93
- "requiredOutputCategory": "summary",
94
- "futureNestedField": "preserved"
95
- },
96
- "validationRequirements": [
97
- "Run the build.",
98
- "Run the test suite."
99
- ],
100
- "stopConditions": [
101
- "Stop if the build fails."
102
- ],
103
- "resolutionProvenance": [
104
- {
105
- "rootWorkflowId": "workflow.feature",
106
- "rootStageId": "stage.feature.implementation",
107
- "sourceEntryId": "stage.feature.implementation",
108
- "referenceField": "commandRefs",
109
- "referencedEntryId": "command.repo.build",
110
- "inclusionReason": "required command reference",
111
- "depth": 0
112
- },
113
- {
114
- "rootWorkflowId": "workflow.feature",
115
- "rootStageId": "stage.feature.implementation",
116
- "sourceEntryId": "stage.feature.implementation",
117
- "referenceField": "ruleRefs",
118
- "referencedEntryId": "rule.quality.no-dead-code",
119
- "inclusionReason": "required rule reference",
120
- "depth": 0
121
- }
122
- ],
123
- "budget": {
124
- "findings": [
125
- {
126
- "limitName": "maxCommands",
127
- "declaredLimit": 20,
128
- "used": 2,
129
- "available": 18,
130
- "overLimit": false,
131
- "amountExceeded": 0,
132
- "affectedEntryIds": []
133
- },
134
- {
135
- "limitName": "maxRuleDepth",
136
- "declaredLimit": null,
137
- "used": 1,
138
- "available": null,
139
- "overLimit": false,
140
- "amountExceeded": 0,
141
- "affectedEntryIds": []
142
- }
143
- ],
144
- "overLimit": false,
145
- "adequate": true,
146
- "totalCharacters": 3200,
147
- "perEntryCharacters": {
148
- "stage.feature.implementation": 1800,
149
- "command.repo.build": 200,
150
- "rule.quality.no-dead-code": 150
151
- }
152
- },
153
- "truncation": {
154
- "truncated": false,
155
- "records": [
156
- {
157
- "rootOptionalEntryId": "command.repo.lint",
158
- "affectedEntryIds": [
159
- "command.repo.lint"
160
- ],
161
- "limitingField": "maxCommands",
162
- "declaredLimit": 20,
163
- "usedBefore": 1,
164
- "attemptedAfter": 2,
165
- "reason": "included within budget"
166
- }
167
- ],
168
- "droppedOptionalCommandIds": [],
169
- "droppedOptionalRuleIds": [],
170
- "droppedOptionalDependencyIds": [],
171
- "warnings": []
172
- },
173
- "adequacy": {
174
- "status": "adequate",
175
- "reasons": [],
176
- "requiredContentComplete": true,
177
- "requiredBudgetSatisfied": true,
178
- "optionalContentDropped": false,
179
- "affectedEntryIds": []
180
- },
181
- "unresolvedReferences": [
182
- "command.repo.unresolved-example"
183
- ],
184
- "warnings": [],
185
- "futureMinorRootField": "preserved"
186
- }