code-foundry 1.47.0 → 1.47.5

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.
@@ -115,17 +115,23 @@ If the worktree is dirty, stop and understand the existing changes before switch
115
115
 
116
116
  ## Local validation
117
117
 
118
- The repository runtime detects supported tools and skips checks that do not apply:
118
+ Use the commands declared in this repository's manifests and documentation, or
119
+ invoke the installed Code Foundry CLI. The shared runtime detects supported tools
120
+ and skips checks that do not apply:
119
121
 
120
122
  ```sh
121
123
  npx code-foundry doctor
122
- npm run format:check # or the package manager's equivalent
123
- npm run lint
124
- npm run type-check
125
- npm test
126
- Security and dependency audits run through the GitHub Security workflow.
124
+ npx code-foundry plan --tier fast
125
+ npx code-foundry check --tier fast
126
+ npx code-foundry check --tier audit
127
127
  ```
128
128
 
129
+ `doctor` diagnoses setup; `plan` discovers tasks without running them. `check`
130
+ runs the selected tier: `fast` includes CI tasks, unit tests and performance,
131
+ while `audit` adds integration, E2E and smoke.
132
+
133
+ Security and dependency audits run through the GitHub Security workflow.
134
+
129
135
  Run the checks relevant to the change. For a release or security-sensitive change, run the complete set. Record the commands and results in the pull request.
130
136
 
131
137
  <!-- /code-foundry-managed: local-validation -->
@@ -183,6 +183,9 @@ jobs:
183
183
  type-check:
184
184
  name: Type-Check
185
185
  if: vars.CI_BILLING_PAUSED != 'true'
186
+ permissions:
187
+ contents: read
188
+ issues: read
186
189
  runs-on: ${{ inputs.runner }}
187
190
  timeout-minutes: 30
188
191
  steps:
@@ -226,6 +229,8 @@ jobs:
226
229
  - name: Type-Check
227
230
  id: execute
228
231
  if: steps.applicability.outputs.applicable == 'true' && steps.applicability.outputs.affected != 'false'
232
+ env:
233
+ GH_TOKEN: ${{ github.token }}
229
234
  run: node "$RUNNER_TEMP/code-foundry/src/runtime.mjs" ci type_check
230
235
  - name: Retain task receipt
231
236
  if: >-
@@ -533,6 +533,9 @@ jobs:
533
533
  type-check:
534
534
  name: Type-Check
535
535
  if: vars.CI_BILLING_PAUSED != 'true'
536
+ permissions:
537
+ contents: read
538
+ issues: read
536
539
  runs-on: ${{ inputs.ci-runner }}
537
540
  timeout-minutes: 30
538
541
  steps:
@@ -576,6 +579,8 @@ jobs:
576
579
  - name: Type-Check
577
580
  id: execute
578
581
  if: steps.applicability.outputs.applicable == 'true' && steps.applicability.outputs.affected != 'false'
582
+ env:
583
+ GH_TOKEN: ${{ github.token }}
579
584
  run: node "$RUNNER_TEMP/code-foundry/src/runtime.mjs" ci type_check
580
585
  - name: Retain task receipt
581
586
  if: >-
@@ -104,6 +104,12 @@ jobs:
104
104
  ci:
105
105
  name: CI
106
106
  if: vars.CI_BILLING_PAUSED != 'true' && (inputs.mode == 'fast' || inputs.mode == 'audit' || inputs.mode == 'release')
107
+ # Forward issue-read only to the CI workflow that runs Type-Check.
108
+ permissions:
109
+ actions: read
110
+ contents: read
111
+ issues: read
112
+ packages: read
107
113
  uses: ./.github/workflows/ci.yml
108
114
  with:
109
115
  runtime-repository: ${{ inputs.runtime-repository }}
@@ -104,6 +104,12 @@ jobs:
104
104
  ci:
105
105
  name: CI
106
106
  if: vars.CI_BILLING_PAUSED != 'true' && (inputs.mode == 'fast' || inputs.mode == 'audit' || inputs.mode == 'release')
107
+ # Type-Check reads the issue-backed requirements ledger with github.token.
108
+ permissions:
109
+ actions: read
110
+ contents: read
111
+ issues: read
112
+ packages: read
107
113
  uses: ./.github/workflows/ci.yml
108
114
  with:
109
115
  runtime-repository: ${{ inputs.runtime-repository }}
@@ -22,6 +22,7 @@ jobs:
22
22
  permissions:
23
23
  actions: read
24
24
  contents: read
25
+ issues: read
25
26
  packages: read
26
27
  security-events: write
27
28
  uses: 0xPlayerOne/code-foundry/.github/workflows/validation.yml@main
@@ -78,6 +78,7 @@ jobs:
78
78
  permissions:
79
79
  actions: read
80
80
  contents: read
81
+ issues: read
81
82
  packages: read
82
83
  security-events: write
83
84
  uses: ./.github/workflows/validation.yml
package/.gitignore CHANGED
@@ -83,3 +83,4 @@ mise.local.lock
83
83
  # committed pre-commit gate is tracked.
84
84
  .githooks/*
85
85
  !.githooks/pre-commit
86
+ .fleet-wt/
package/AGENTS.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  These instructions are the repository-level operating contract for coding agents, including Hermes, OpenCode, and other automation.
6
6
 
7
- They complement `CONTRIBUTING.md`. More specific instructions in nested `AGENTS.md` files and project documentation take precedence for their directory.
7
+ They complement `.github/CONTRIBUTING.md`. More specific instructions in nested `AGENTS.md` files and project documentation take precedence for their directory.
8
8
 
9
9
  <!-- /code-foundry-managed: config-aware-policy -->
10
10
 
@@ -183,7 +183,22 @@ This repository uses the `direct` workflow. Topic pull requests target `main`.
183
183
 
184
184
  ## Validation
185
185
 
186
- Use the shared scripts when present. They detect supported tools and skip inapplicable checks:
186
+ From a consumer repository, use its documented package scripts or the installed
187
+ Code Foundry CLI:
188
+
189
+ ```sh
190
+ npx code-foundry plan --tier fast
191
+ npx code-foundry check --tier fast
192
+ npx code-foundry check --tier audit
193
+ ```
194
+
195
+ `plan` discovers tasks without running them. `check` invokes the shared runtime;
196
+ `fast` includes CI tasks, unit tests and performance, while `audit` adds
197
+ integration, E2E and smoke.
198
+
199
+ From a Code Foundry source checkout only, the shared runtime is also available.
200
+ The paths below are relative to that checkout, not a consumer repository. The
201
+ runtime detects supported tools and skips inapplicable checks:
187
202
 
188
203
  ```sh
189
204
  node src/runtime.mjs ci format
@@ -196,9 +211,10 @@ node src/runtime.mjs ci e2e
196
211
  node src/runtime.mjs ci smoke
197
212
  node src/runtime.mjs ci eval
198
213
  node src/runtime.mjs ci performance
199
- Security and dependency audits run through the GitHub Security workflow.
200
214
  ```
201
215
 
216
+ Security and dependency audits run through the GitHub Security workflow.
217
+
202
218
  Run focused tests first, then the complete applicable set for release, security, workflow, dependency, and configuration changes.
203
219
 
204
220
  At minimum:
package/CHANGELOG.md CHANGED
@@ -1,5 +1,40 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.47.5](https://github.com/0xPlayerOne/code-foundry/compare/v1.47.4...v1.47.5) (2026-10-15)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * validation-issue-read-v1471 ([#759](https://github.com/0xPlayerOne/code-foundry/issues/759)) ([7119b3e](https://github.com/0xPlayerOne/code-foundry/commit/7119b3e2baebfbfdd47d32428cbf5df2f2079afa))
9
+
10
+ ## [1.47.4](https://github.com/0xPlayerOne/code-foundry/compare/v1.47.3...v1.47.4) (2026-10-15)
11
+
12
+
13
+ ### Documentation
14
+
15
+ * fix generated agent contribution and validation references ([#760](https://github.com/0xPlayerOne/code-foundry/issues/760)) ([c3564c9](https://github.com/0xPlayerOne/code-foundry/commit/c3564c92cb168449317afe2e40359144bf7a0c71))
16
+
17
+ ## [1.47.3](https://github.com/0xPlayerOne/code-foundry/compare/v1.47.2...v1.47.3) (2026-10-09)
18
+
19
+
20
+ ### Maintenance
21
+
22
+ * **fleet:** point the manifest at the rollout worktrees and filter adea's actionlint ([#757](https://github.com/0xPlayerOne/code-foundry/issues/757)) ([55bae8b](https://github.com/0xPlayerOne/code-foundry/commit/55bae8bf99a022bfa03294972d89a3cca20a6203))
23
+
24
+ ## [1.47.2](https://github.com/0xPlayerOne/code-foundry/compare/v1.47.1...v1.47.2) (2026-10-08)
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * **qualification:** exclude pending parallel syntax by content, not filename ([#755](https://github.com/0xPlayerOne/code-foundry/issues/755)) ([1f7cae8](https://github.com/0xPlayerOne/code-foundry/commit/1f7cae8167002061850e56e3dc0fa800a69d7be9))
30
+
31
+ ## [1.47.1](https://github.com/0xPlayerOne/code-foundry/compare/v1.47.0...v1.47.1) (2026-10-08)
32
+
33
+
34
+ ### Tests
35
+
36
+ * **doctor:** pin the machine-hook shadow warning ([#753](https://github.com/0xPlayerOne/code-foundry/issues/753)) ([f634269](https://github.com/0xPlayerOne/code-foundry/commit/f634269424580d8d34323319288747587b6d6ae3))
37
+
3
38
  ## [1.47.0](https://github.com/0xPlayerOne/code-foundry/compare/v1.46.6...v1.47.0) (2026-10-08)
4
39
 
5
40
 
@@ -105,44 +140,9 @@
105
140
 
106
141
  * **release:** query the version-PR branch directly in the REST fallback ([#722](https://github.com/0xPlayerOne/code-foundry/issues/722)) ([b38f394](https://github.com/0xPlayerOne/code-foundry/commit/b38f394c0ca6438117fdd2f45bd106b0b145a0f9))
107
142
 
108
- ## [1.44.7](https://github.com/0xPlayerOne/code-foundry/compare/v1.44.6...v1.44.7) (2026-10-05)
109
-
110
-
111
- ### Bug Fixes
112
-
113
- * **release:** complete rejected release-please runs over REST ([#720](https://github.com/0xPlayerOne/code-foundry/issues/720)) ([14e88b5](https://github.com/0xPlayerOne/code-foundry/commit/14e88b5561803fc8d5d3a77b67b99e1be90bc4af))
114
-
115
- ## [1.44.6](https://github.com/0xPlayerOne/code-foundry/compare/v1.44.5...v1.44.6) (2026-10-05)
116
-
117
-
118
- ### Bug Fixes
119
-
120
- * **config:** pin the lint-bearing CI lane to a standard runner by default ([#718](https://github.com/0xPlayerOne/code-foundry/issues/718)) ([fc0ed14](https://github.com/0xPlayerOne/code-foundry/commit/fc0ed14434151fb11eef7c0d4c324c7a370d5058))
121
-
122
- ## [1.44.5](https://github.com/0xPlayerOne/code-foundry/compare/v1.44.4...v1.44.5) (2026-10-05)
123
-
124
-
125
- ### Bug Fixes
126
-
127
- * **release:** probe the tag-creation write before trusting the automation token ([#716](https://github.com/0xPlayerOne/code-foundry/issues/716)) ([fabaddc](https://github.com/0xPlayerOne/code-foundry/commit/fabaddcb05d5dc701248b693f91be6ee433f8d39))
128
-
129
- ## [1.44.4](https://github.com/0xPlayerOne/code-foundry/compare/v1.44.3...v1.44.4) (2026-10-03)
130
-
131
-
132
- ### Bug Fixes
133
-
134
- * **ci:** declare the e2e shard inputs on the no-codeql orchestrator ([#714](https://github.com/0xPlayerOne/code-foundry/issues/714)) ([7500208](https://github.com/0xPlayerOne/code-foundry/commit/7500208f3b25dfe55c41ea45b382e021cf804012))
135
-
136
- ## [1.44.3](https://github.com/0xPlayerOne/code-foundry/compare/v1.44.2...v1.44.3) (2026-10-03)
137
-
138
-
139
- ### Tests
140
-
141
- * **cli:** assert expected doctor warnings ([#712](https://github.com/0xPlayerOne/code-foundry/issues/712)) ([d036bee](https://github.com/0xPlayerOne/code-foundry/commit/d036beee79a9b200315cdbee5509fc3c2a6c4a04))
142
-
143
143
  <!-- code-foundry: packaged changelog -->
144
144
 
145
145
  ---
146
146
 
147
- This packaged changelog lists the 20 most recent releases; 242 older releases are omitted to keep the package small.
147
+ This packaged changelog lists the 20 most recent releases; 247 older releases are omitted to keep the package small.
148
148
  See the [full changelog](https://github.com/0xPlayerOne/code-foundry/blob/main/CHANGELOG.md) for the complete history.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-foundry",
3
- "version": "1.47.0",
3
+ "version": "1.47.5",
4
4
  "description": "A fast, language-aware repository factory for agent-ready workflows, testing, security, and release automation.",
5
5
  "homepage": "https://github.com/0xPlayerOne/code-foundry#readme",
6
6
  "bugs": {
@@ -157,17 +157,16 @@ function lintContracts(consumer, candidate, destination, actionlint, version) {
157
157
  paths.push(target)
158
158
  }
159
159
  // Check all candidate callees as well as rendered callers, without executing them.
160
- // actionlint v1.7.12 (still the latest release as of 2026-10-07) predates
160
+ // actionlint v1.7.12 (still the latest release as of 2026-10-08) predates
161
161
  // the June 2026 step parallelism keywords (background/wait/wait-all/
162
162
  // cancel/parallel), so files using them are excluded from this pass until
163
163
  // actionlint ships support — GitHub's own loader accepts the syntax, which
164
164
  // is verified by live runs and pinned in test/billing-lanes.test.mjs.
165
- // Restore the removal of this exclusion when rhysd/actionlint releases
166
- // post-parallel support.
167
- const actionlintPendingParallelSyntax = new Set(['validation-billing.yml'])
168
- const workflows = readdirSync(join(destination, '.github/workflows')).filter(
169
- (name) => /\.ya?ml$/.test(name) && !actionlintPendingParallelSyntax.has(name)
170
- )
165
+ // The exclusion is content-based so repository-owned workflows adopting the
166
+ // keywords (adea's desktop-shell, for one) stay covered without list
167
+ // maintenance. Restore the removal of this exclusion when
168
+ // rhysd/actionlint releases post-parallel support.
169
+ const workflows = actionlintEligibleWorkflows(join(destination, '.github/workflows'))
171
170
  run(
172
171
  actionlint,
173
172
  [
@@ -180,6 +179,15 @@ function lintContracts(consumer, candidate, destination, actionlint, version) {
180
179
  return paths.length
181
180
  }
182
181
 
182
+ /** @param {string} workflowsDirectory */
183
+ export function actionlintEligibleWorkflows(workflowsDirectory) {
184
+ const pendingParallelSyntax = /^[ \t]*(?:-[ \t]+)?(?:background|wait|wait-all|cancel|parallel):/m
185
+ return readdirSync(workflowsDirectory).filter((name) => {
186
+ if (!/\.ya?ml$/.test(name)) return false
187
+ return !pendingParallelSyntax.test(readFileSync(join(workflowsDirectory, name), 'utf8'))
188
+ })
189
+ }
190
+
183
191
  /** @param {{ packageFile: string, sourceSha: string, reportPath: string, actionlint?: string }} options */
184
192
  export function qualifyCandidate(options) {
185
193
  if (!/^[a-f0-9]{40}$/.test(options.sourceSha))
@@ -110,6 +110,7 @@ on:
110
110
  permissions:
111
111
  actions: read
112
112
  contents: read
113
+ issues: read
113
114
  packages: read
114
115
  security-events: write
115
116
 
@@ -22,6 +22,7 @@ jobs:
22
22
  permissions:
23
23
  actions: read
24
24
  contents: read
25
+ issues: read
25
26
  packages: read
26
27
  security-events: write
27
28
  uses: ./.github/workflows/validation.yml