@zigrivers/scaffold 2.44.3 → 3.0.0

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 (41) hide show
  1. package/README.md +27 -7
  2. package/dist/cli/commands/build.d.ts +8 -1
  3. package/dist/cli/commands/build.d.ts.map +1 -1
  4. package/dist/cli/commands/build.js +166 -145
  5. package/dist/cli/commands/build.js.map +1 -1
  6. package/dist/cli/commands/build.test.js +111 -26
  7. package/dist/cli/commands/build.test.js.map +1 -1
  8. package/dist/cli/commands/init.d.ts.map +1 -1
  9. package/dist/cli/commands/init.js +20 -1
  10. package/dist/cli/commands/init.js.map +1 -1
  11. package/dist/cli/commands/init.test.js +39 -4
  12. package/dist/cli/commands/init.test.js.map +1 -1
  13. package/dist/core/adapters/claude-code.js +1 -1
  14. package/dist/core/adapters/claude-code.js.map +1 -1
  15. package/dist/core/adapters/claude-code.test.js +2 -2
  16. package/dist/core/adapters/claude-code.test.js.map +1 -1
  17. package/dist/core/adapters/codex.js +1 -1
  18. package/dist/core/adapters/codex.js.map +1 -1
  19. package/dist/core/adapters/codex.test.js +3 -3
  20. package/dist/core/adapters/codex.test.js.map +1 -1
  21. package/dist/core/adapters/universal.js +1 -1
  22. package/dist/core/adapters/universal.js.map +1 -1
  23. package/dist/core/adapters/universal.test.js +3 -3
  24. package/dist/core/adapters/universal.test.js.map +1 -1
  25. package/dist/e2e/init.test.js +24 -0
  26. package/dist/e2e/init.test.js.map +1 -1
  27. package/dist/project/gitignore.d.ts +9 -0
  28. package/dist/project/gitignore.d.ts.map +1 -0
  29. package/dist/project/gitignore.js +103 -0
  30. package/dist/project/gitignore.js.map +1 -0
  31. package/dist/project/gitignore.test.d.ts +2 -0
  32. package/dist/project/gitignore.test.d.ts.map +1 -0
  33. package/dist/project/gitignore.test.js +96 -0
  34. package/dist/project/gitignore.test.js.map +1 -0
  35. package/package.json +1 -1
  36. package/pipeline/build/multi-agent-resume.md +14 -6
  37. package/pipeline/build/multi-agent-start.md +14 -6
  38. package/pipeline/build/single-agent-resume.md +13 -5
  39. package/pipeline/build/single-agent-start.md +15 -7
  40. package/skills/scaffold-runner/SKILL.md +4 -1
  41. package/tools/review-code.md +319 -0
@@ -36,7 +36,7 @@ ${stepList || '(No steps configured)'}
36
36
  4. After completion, run \`scaffold run\` again to mark the step complete
37
37
  `;
38
38
  return {
39
- files: [{ relativePath: 'prompts/README.md', content, writeMode: 'create' }],
39
+ files: [{ relativePath: '.scaffold/generated/universal/prompts/README.md', content, writeMode: 'create' }],
40
40
  errors: [],
41
41
  };
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"universal.js","sourceRoot":"","sources":["../../../src/core/adapters/universal.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,gBAAgB;IAClB,UAAU,GAAG,WAAW,CAAA;IAEzB,OAAO,GAA0B,IAAI,CAAA;IACrC,cAAc,GAAuB,EAAE,CAAA;IAE/C,UAAU,CAAC,OAAuB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;IACtC,CAAC;IAED,mBAAmB,CAAC,KAAuB;QACzC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/B,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;IAED,QAAQ,CAAC,MAA4B;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc;aACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;aAC7D,IAAI,CAAC,IAAI,CAAC,CAAA;QAEb,MAAM,OAAO,GAAG;;;;;;EAMlB,QAAQ,IAAI,uBAAuB;;;;;;;;CAQpC,CAAA;QAEG,OAAO;YACL,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;YAC5E,MAAM,EAAE,EAAE;SACX,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"universal.js","sourceRoot":"","sources":["../../../src/core/adapters/universal.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,gBAAgB;IAClB,UAAU,GAAG,WAAW,CAAA;IAEzB,OAAO,GAA0B,IAAI,CAAA;IACrC,cAAc,GAAuB,EAAE,CAAA;IAE/C,UAAU,CAAC,OAAuB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;QACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;IACtC,CAAC;IAED,mBAAmB,CAAC,KAAuB;QACzC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/B,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;IAED,QAAQ,CAAC,MAA4B;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc;aACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;aAC7D,IAAI,CAAC,IAAI,CAAC,CAAA;QAEb,MAAM,OAAO,GAAG;;;;;;EAMlB,QAAQ,IAAI,uBAAuB;;;;;;;;CAQpC,CAAA;QAEG,OAAO;YACL,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,iDAAiD,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;YAC1G,MAAM,EAAE,EAAE;SACX,CAAA;IACH,CAAC;CACF"}
@@ -34,12 +34,12 @@ describe('UniversalAdapter', () => {
34
34
  const output = adapter.generateStepWrapper(makeStepInput());
35
35
  expect(output.files).toEqual([]);
36
36
  });
37
- // T-042 test 2: finalize() generates prompts/README.md
38
- it('finalize() generates a single prompts/README.md file', () => {
37
+ // T-042 test 2: finalize() generates hidden prompts/README.md
38
+ it('finalize() generates a single hidden prompts/README.md file', () => {
39
39
  adapter.initialize(makeContext());
40
40
  const result = adapter.finalize(makeFinalizeInput([]));
41
41
  expect(result.files).toHaveLength(1);
42
- expect(result.files[0].relativePath).toBe('prompts/README.md');
42
+ expect(result.files[0].relativePath).toBe('.scaffold/generated/universal/prompts/README.md');
43
43
  });
44
44
  // T-042 test 3: README contains scaffold run commands for each step
45
45
  it('README contains scaffold run commands for each collected step', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"universal.test.js","sourceRoot":"","sources":["../../../src/core/adapters/universal.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"universal.test.js","sourceRoot":"","sources":["../../../src/core/adapters/universal.test.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ vi.mock('../../src/project/detector.js', () => ({
23
23
  }));
24
24
  vi.mock('../../src/core/assembly/meta-prompt-loader.js', () => ({
25
25
  discoverMetaPrompts: vi.fn(() => new Map()),
26
+ discoverAllMetaPrompts: vi.fn(() => new Map()),
26
27
  }));
27
28
  // ---------------------------------------------------------------------------
28
29
  // Real imports (after mock declarations)
@@ -31,6 +32,7 @@ import { detectProjectMode } from '../project/detector.js';
31
32
  import { runWizard } from '../wizard/wizard.js';
32
33
  import { StateManager } from '../state/state-manager.js';
33
34
  import { loadConfig } from '../config/loader.js';
35
+ import initCommand from '../cli/commands/init.js';
34
36
  // ---------------------------------------------------------------------------
35
37
  // Helpers
36
38
  // ---------------------------------------------------------------------------
@@ -179,5 +181,27 @@ describe('scaffold init E2E', () => {
179
181
  const state = stateManager.loadState();
180
182
  expect(state['init-mode']).toBe('brownfield');
181
183
  });
184
+ // Test 11: init command auto-runs build into hidden .scaffold/generated output
185
+ it('init command creates hidden generated output and .gitignore without root commands', async () => {
186
+ const exitSpy = vi.spyOn(process, 'exit').mockImplementation((() => { }));
187
+ vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
188
+ vi.spyOn(process.stderr, 'write').mockImplementation(() => true);
189
+ await initCommand.handler({
190
+ _: [],
191
+ $0: 'scaffold',
192
+ root: tmpDir,
193
+ auto: true,
194
+ force: false,
195
+ methodology: 'mvp',
196
+ idea: undefined,
197
+ format: undefined,
198
+ verbose: false,
199
+ });
200
+ expect(exitSpy).toHaveBeenCalledWith(0);
201
+ expect(fs.existsSync(path.join(tmpDir, '.scaffold', 'generated', 'universal', 'prompts', 'README.md'))).toBe(true);
202
+ expect(fs.existsSync(path.join(tmpDir, '.gitignore'))).toBe(true);
203
+ expect(fs.readFileSync(path.join(tmpDir, '.gitignore'), 'utf8')).toContain('.scaffold/generated/');
204
+ expect(fs.existsSync(path.join(tmpDir, 'commands'))).toBe(false);
205
+ });
182
206
  });
183
207
  //# sourceMappingURL=init.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/e2e/init.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/e2e/init.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ScaffoldWarning } from '../types/index.js';
2
+ export interface EnsureScaffoldGitignoreResult {
3
+ created: boolean;
4
+ updated: boolean;
5
+ warnings: ScaffoldWarning[];
6
+ }
7
+ export declare function ensureScaffoldGitignore(projectRoot: string): EnsureScaffoldGitignoreResult;
8
+ export declare function findLegacyGeneratedOutputs(projectRoot: string): string[];
9
+ //# sourceMappingURL=gitignore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/project/gitignore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAmBxD,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,eAAe,EAAE,CAAA;CAC5B;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,6BAA6B,CAiB1F;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBxE"}
@@ -0,0 +1,103 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { atomicWriteFile } from '../utils/fs.js';
4
+ const GITIGNORE_FILE = '.gitignore';
5
+ const MANAGED_START = '# >>> scaffold managed';
6
+ const MANAGED_END = '# <<< scaffold managed';
7
+ const MANAGED_LINES = [
8
+ '.scaffold/generated/',
9
+ '.scaffold/lock.json',
10
+ '.scaffold/*.tmp',
11
+ '.scaffold/**/*.tmp',
12
+ ];
13
+ const DANGEROUS_RULES = new Set([
14
+ '.scaffold/',
15
+ '.scaffold/*',
16
+ '.scaffold/**',
17
+ ]);
18
+ export function ensureScaffoldGitignore(projectRoot) {
19
+ const gitignorePath = path.join(projectRoot, GITIGNORE_FILE);
20
+ const existed = fs.existsSync(gitignorePath);
21
+ const currentContent = existed ? fs.readFileSync(gitignorePath, 'utf8') : '';
22
+ const warnings = findDangerousScaffoldRules(currentContent);
23
+ const managedBlock = buildManagedBlock();
24
+ const nextContent = upsertManagedBlock(currentContent, managedBlock);
25
+ if (!existed || nextContent !== currentContent) {
26
+ atomicWriteFile(gitignorePath, nextContent);
27
+ }
28
+ return {
29
+ created: !existed,
30
+ updated: !existed || nextContent !== currentContent,
31
+ warnings,
32
+ };
33
+ }
34
+ export function findLegacyGeneratedOutputs(projectRoot) {
35
+ const legacyOutputs = [
36
+ { relativePath: 'commands', isDirectory: true },
37
+ { relativePath: 'prompts', isDirectory: true },
38
+ { relativePath: 'codex-prompts', isDirectory: true },
39
+ ];
40
+ const found = legacyOutputs
41
+ .filter(({ relativePath, isDirectory }) => {
42
+ const fullPath = path.join(projectRoot, relativePath);
43
+ if (!fs.existsSync(fullPath))
44
+ return false;
45
+ if (isDirectory === undefined)
46
+ return true;
47
+ return isDirectory ? fs.statSync(fullPath).isDirectory() : fs.statSync(fullPath).isFile();
48
+ })
49
+ .map(({ relativePath, isDirectory }) => isDirectory ? `${relativePath}/` : relativePath);
50
+ if (isLegacyGeneratedAgentsFile(path.join(projectRoot, 'AGENTS.md'))) {
51
+ found.push('AGENTS.md');
52
+ }
53
+ return found;
54
+ }
55
+ function buildManagedBlock() {
56
+ return [
57
+ MANAGED_START,
58
+ ...MANAGED_LINES,
59
+ MANAGED_END,
60
+ ].join('\n');
61
+ }
62
+ function upsertManagedBlock(content, managedBlock) {
63
+ const normalized = content.replace(/\r\n/g, '\n');
64
+ const blockPattern = new RegExp(`${escapeRegex(MANAGED_START)}[\\s\\S]*?${escapeRegex(MANAGED_END)}\\n?`, 'm');
65
+ if (blockPattern.test(normalized)) {
66
+ return normalized.replace(blockPattern, `${managedBlock}\n`);
67
+ }
68
+ if (normalized.length === 0) {
69
+ return `${managedBlock}\n`;
70
+ }
71
+ return normalized.endsWith('\n')
72
+ ? `${normalized}\n${managedBlock}\n`
73
+ : `${normalized}\n\n${managedBlock}\n`;
74
+ }
75
+ function findDangerousScaffoldRules(content) {
76
+ return content
77
+ .replace(/\r\n/g, '\n')
78
+ .split('\n')
79
+ .map(line => line.trim())
80
+ .filter(line => line.length > 0 && !line.startsWith('#'))
81
+ .filter(line => DANGEROUS_RULES.has(line))
82
+ .map((line) => ({
83
+ code: 'GITIGNORE_SCAFFOLD_STATE_HIDDEN',
84
+ message: `User .gitignore rule '${line}' hides committed Scaffold state. Remove it manually.`,
85
+ context: { rule: line },
86
+ }));
87
+ }
88
+ function escapeRegex(value) {
89
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
90
+ }
91
+ function isLegacyGeneratedAgentsFile(filePath) {
92
+ if (!fs.existsSync(filePath) || !fs.statSync(filePath).isFile())
93
+ return false;
94
+ try {
95
+ const content = fs.readFileSync(filePath, 'utf8');
96
+ return (content.includes('# Scaffold Pipeline')
97
+ || content.includes('Run each step using: `scaffold run <step-slug>`'));
98
+ }
99
+ catch {
100
+ return false;
101
+ }
102
+ }
103
+ //# sourceMappingURL=gitignore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/project/gitignore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=gitignore.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore.test.d.ts","sourceRoot":"","sources":["../../src/project/gitignore.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,96 @@
1
+ import fs from 'node:fs';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ import crypto from 'node:crypto';
5
+ import { afterEach, describe, expect, it } from 'vitest';
6
+ import { ensureScaffoldGitignore, findLegacyGeneratedOutputs } from './gitignore.js';
7
+ const tmpDirs = [];
8
+ function makeTempDir() {
9
+ const dir = path.join(os.tmpdir(), `scaffold-gitignore-${crypto.randomUUID()}`);
10
+ tmpDirs.push(dir);
11
+ fs.mkdirSync(dir, { recursive: true });
12
+ return dir;
13
+ }
14
+ afterEach(() => {
15
+ for (const dir of tmpDirs.splice(0)) {
16
+ fs.rmSync(dir, { recursive: true, force: true });
17
+ }
18
+ });
19
+ describe('ensureScaffoldGitignore', () => {
20
+ it('creates .gitignore with scaffold managed block when missing', () => {
21
+ const root = makeTempDir();
22
+ const result = ensureScaffoldGitignore(root);
23
+ expect(result.created).toBe(true);
24
+ expect(result.updated).toBe(true);
25
+ expect(result.warnings).toEqual([]);
26
+ const content = fs.readFileSync(path.join(root, '.gitignore'), 'utf8');
27
+ expect(content).toContain('# >>> scaffold managed');
28
+ expect(content).toContain('.scaffold/generated/');
29
+ expect(content).toContain('.scaffold/lock.json');
30
+ expect(content).toContain('.scaffold/*.tmp');
31
+ expect(content).toContain('.scaffold/**/*.tmp');
32
+ });
33
+ it('updates existing managed block idempotently without changing user content', () => {
34
+ const root = makeTempDir();
35
+ const gitignorePath = path.join(root, '.gitignore');
36
+ fs.writeFileSync(gitignorePath, [
37
+ 'node_modules/',
38
+ '',
39
+ '# >>> scaffold managed',
40
+ '.scaffold/generated/',
41
+ '# <<< scaffold managed',
42
+ '',
43
+ '.env',
44
+ '',
45
+ ].join('\n'));
46
+ const first = ensureScaffoldGitignore(root);
47
+ const firstContent = fs.readFileSync(gitignorePath, 'utf8');
48
+ const second = ensureScaffoldGitignore(root);
49
+ const secondContent = fs.readFileSync(gitignorePath, 'utf8');
50
+ expect(first.created).toBe(false);
51
+ expect(first.updated).toBe(true);
52
+ expect(firstContent).toContain('node_modules/');
53
+ expect(firstContent).toContain('.env');
54
+ expect(firstContent).toContain('.scaffold/lock.json');
55
+ expect(second.updated).toBe(false);
56
+ expect(secondContent).toBe(firstContent);
57
+ });
58
+ it('warns when user rules would ignore committed scaffold state', () => {
59
+ const root = makeTempDir();
60
+ fs.writeFileSync(path.join(root, '.gitignore'), [
61
+ '.scaffold/',
62
+ '.scaffold/*',
63
+ '',
64
+ ].join('\n'));
65
+ const result = ensureScaffoldGitignore(root);
66
+ expect(result.warnings).toEqual([
67
+ expect.objectContaining({ code: 'GITIGNORE_SCAFFOLD_STATE_HIDDEN' }),
68
+ expect.objectContaining({ code: 'GITIGNORE_SCAFFOLD_STATE_HIDDEN' }),
69
+ ]);
70
+ });
71
+ });
72
+ describe('findLegacyGeneratedOutputs', () => {
73
+ it('finds legacy root generated outputs', () => {
74
+ const root = makeTempDir();
75
+ fs.mkdirSync(path.join(root, 'commands'));
76
+ fs.mkdirSync(path.join(root, 'prompts'));
77
+ fs.mkdirSync(path.join(root, 'codex-prompts'));
78
+ fs.writeFileSync(path.join(root, 'AGENTS.md'), '# Scaffold Pipeline — Codex Guide', 'utf8');
79
+ expect(findLegacyGeneratedOutputs(root)).toEqual([
80
+ 'commands/',
81
+ 'prompts/',
82
+ 'codex-prompts/',
83
+ 'AGENTS.md',
84
+ ]);
85
+ });
86
+ it('does not flag a user-owned root AGENTS.md as legacy generated output', () => {
87
+ const root = makeTempDir();
88
+ fs.writeFileSync(path.join(root, 'AGENTS.md'), '# Project agent instructions', 'utf8');
89
+ expect(findLegacyGeneratedOutputs(root)).toEqual([]);
90
+ });
91
+ it('returns empty array when no legacy outputs exist', () => {
92
+ const root = makeTempDir();
93
+ expect(findLegacyGeneratedOutputs(root)).toEqual([]);
94
+ });
95
+ });
96
+ //# sourceMappingURL=gitignore.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore.test.js","sourceRoot":"","sources":["../../src/project/gitignore.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zigrivers/scaffold",
3
- "version": "2.44.3",
3
+ "version": "3.0.0",
4
4
  "description": "AI-powered software project scaffolding pipeline",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -163,12 +163,19 @@ Once in-progress work is complete (or if there was none):
163
163
  - Run `make check` (or equivalent from CLAUDE.md Key Commands)
164
164
  - If `tests/evals/` exists, run `make eval` (or equivalent eval command)
165
165
 
166
- 2. **Create PR** (if not already created for in-progress work)
166
+ 2. **Pre-push local code review (when requested or required)**
167
+ - If the user says to review before committing or pushing, or the project's workflow requires a local multi-model gate before `git push`, run `scaffold run review-code`
168
+ - This reviews the local delivery candidate without requiring a PR
169
+ - Surface auth failures immediately and retry after recovery
170
+ - If recovery is not possible, document reduced review coverage and continue with the available channels
171
+ - Fix any P0/P1/P2 findings before proceeding
172
+
173
+ 3. **Create PR** (if not already created for in-progress work)
167
174
  - Push the branch: `git push -u origin HEAD`
168
175
  - Create a pull request: `gh pr create`
169
176
  - Include agent name in PR description for traceability
170
177
 
171
- 3. **Run code reviews (MANDATORY)**
178
+ 4. **Run code reviews (MANDATORY)**
172
179
  - Run the review-pr tool: `scaffold run review-pr` (CLI) or `/scaffold:review-pr` (plugin)
173
180
  - This runs **all three** review channels on the PR diff:
174
181
  1. **Codex CLI**: `codex exec --skip-git-repo-check -s read-only --ephemeral "REVIEW_PROMPT" 2>/dev/null`
@@ -179,11 +186,11 @@ Once in-progress work is complete (or if there was none):
179
186
  - Fix any P0/P1/P2 findings before proceeding
180
187
  - Do NOT move to the next task until all channels have run
181
188
 
182
- 4. **Between-task cleanup**
189
+ 5. **Between-task cleanup**
183
190
  - `git fetch origin --prune && git clean -fd`
184
191
  - Run the install command from CLAUDE.md Key Commands
185
192
 
186
- 5. **Claim next task**
193
+ 6. **Claim next task**
187
194
  - Branch from remote: `git fetch origin && git checkout -b <branch-name> origin/main`
188
195
  - Pick the next task following the same process as `/scaffold:multi-agent-start`
189
196
  - Continue the TDD execution loop
@@ -230,8 +237,9 @@ Once in-progress work is complete (or if there was none):
230
237
  4. **Clean between tasks** — Run cleanup after each task to prevent state leakage.
231
238
  5. **TDD is not optional** — Continue the red-green-refactor cycle for any in-progress work.
232
239
  6. **Quality gates before PR** — Never create a PR with failing checks.
233
- 7. **Code review before next task** — After creating a PR, run all three review channels (Codex CLI, Gemini CLI, Superpowers code-reviewer) and fix all P0/P1/P2 findings before moving on.
234
- 8. **Follow CLAUDE.md** — It is the authority on project conventions and commands.
240
+ 7. **Honor pre-push review when requested** — If the user or project workflow asks for pre-push multi-model review, run `scaffold run review-code` after quality gates and before `git push`.
241
+ 8. **Code review before next task** — After creating a PR, run all three review channels (Codex CLI, Gemini CLI, Superpowers code-reviewer) and fix all P0/P1/P2 findings before moving on.
242
+ 9. **Follow CLAUDE.md** — It is the authority on project conventions and commands.
235
243
 
236
244
  ---
237
245
 
@@ -166,13 +166,20 @@ For each task:
166
166
  - If `tests/evals/` exists, run `make eval` (or equivalent eval command)
167
167
  - Fix any failures before proceeding
168
168
 
169
- 6. **Create PR**
169
+ 6. **Pre-push local code review (when requested or required)**
170
+ - If the user says to review before committing or pushing, or the project's workflow requires a local multi-model gate before `git push`, run `scaffold run review-code`
171
+ - This reviews the local delivery candidate without requiring a PR
172
+ - Surface auth failures immediately and retry after recovery
173
+ - If recovery is not possible, document reduced review coverage and continue with the available channels
174
+ - Fix any P0/P1/P2 findings before proceeding
175
+
176
+ 7. **Create PR**
170
177
  - Push the branch: `git push -u origin HEAD`
171
178
  - Create a pull request: `gh pr create`
172
179
  - Include in the PR description: what was implemented, key decisions, files changed, agent name
173
180
  - Follow the PR workflow from `docs/git-workflow.md` or CLAUDE.md
174
181
 
175
- 7. **Run code reviews (MANDATORY)**
182
+ 8. **Run code reviews (MANDATORY)**
176
183
  - Run the review-pr tool: `scaffold run review-pr` (CLI) or `/scaffold:review-pr` (plugin)
177
184
  - This runs **all three** review channels on the PR diff:
178
185
  1. **Codex CLI**: `codex exec --skip-git-repo-check -s read-only --ephemeral "REVIEW_PROMPT" 2>/dev/null`
@@ -183,7 +190,7 @@ For each task:
183
190
  - Fix any P0/P1/P2 findings before proceeding
184
191
  - Do NOT move to the next task until all channels have run
185
192
 
186
- 8. **Between-task cleanup**
193
+ 9. **Between-task cleanup**
187
194
  - `git fetch origin --prune && git clean -fd`
188
195
  - Run the install command from CLAUDE.md Key Commands
189
196
  - This ensures a clean state before the next task
@@ -222,9 +229,10 @@ For each task:
222
229
  3. **Clean between tasks** — Run cleanup after each task to prevent state leakage.
223
230
  4. **TDD is not optional** — Write failing tests before implementation. No exceptions.
224
231
  5. **Quality gates before PR** — Never create a PR with failing checks.
225
- 6. **Code review before next task** — After creating a PR, run all three review channels (Codex CLI, Gemini CLI, Superpowers code-reviewer) and fix all P0/P1/P2 findings before moving on.
226
- 7. **Avoid task conflicts** — Check what other agents are working on before claiming.
227
- 8. **Follow CLAUDE.md** — It is the authority on project conventions and commands.
232
+ 6. **Honor pre-push review when requested** — If the user or project workflow asks for pre-push multi-model review, run `scaffold run review-code` after quality gates and before `git push`.
233
+ 7. **Code review before next task** — After creating a PR, run all three review channels (Codex CLI, Gemini CLI, Superpowers code-reviewer) and fix all P0/P1/P2 findings before moving on.
234
+ 8. **Avoid task conflicts** — Check what other agents are working on before claiming.
235
+ 9. **Follow CLAUDE.md** — It is the authority on project conventions and commands.
228
236
 
229
237
  ---
230
238
 
@@ -140,12 +140,19 @@ Once in-progress work is complete (or if there was none):
140
140
  - Run `make check` (or equivalent from CLAUDE.md Key Commands)
141
141
  - If `tests/evals/` exists, run `make eval` (or equivalent eval command)
142
142
 
143
- 2. **Create PR** (if not already created for in-progress work)
143
+ 2. **Pre-push local code review (when requested or required)**
144
+ - If the user says to review before committing or pushing, or the project's workflow requires a local multi-model gate before `git push`, run `scaffold run review-code`
145
+ - This reviews the local delivery candidate without requiring a PR
146
+ - Surface auth failures immediately and retry after recovery
147
+ - If recovery is not possible, document reduced review coverage and continue with the available channels
148
+ - Fix any P0/P1/P2 findings before proceeding
149
+
150
+ 3. **Create PR** (if not already created for in-progress work)
144
151
  - Push the branch: `git push -u origin HEAD`
145
152
  - Create a pull request: `gh pr create`
146
153
  - Follow the PR workflow from `docs/git-workflow.md` or CLAUDE.md
147
154
 
148
- 3. **Run code reviews (MANDATORY)**
155
+ 4. **Run code reviews (MANDATORY)**
149
156
  - Run the review-pr tool: `scaffold run review-pr` (CLI) or `/scaffold:review-pr` (plugin)
150
157
  - This runs **all three** review channels on the PR diff:
151
158
  1. **Codex CLI**: `codex exec --skip-git-repo-check -s read-only --ephemeral "REVIEW_PROMPT" 2>/dev/null`
@@ -156,7 +163,7 @@ Once in-progress work is complete (or if there was none):
156
163
  - Fix any P0/P1/P2 findings before proceeding
157
164
  - Do NOT move to the next task until all channels have run
158
165
 
159
- 4. **Claim next task**
166
+ 5. **Claim next task**
160
167
  - Return to main: `git checkout main && git pull origin main`
161
168
  - Pick the next task following the same process as `/scaffold:single-agent-start`
162
169
  - Continue the TDD execution loop
@@ -195,8 +202,9 @@ Once in-progress work is complete (or if there was none):
195
202
  3. **Reconcile task status** — Merged PRs must be reflected in the task tracker.
196
203
  4. **TDD is not optional** — Continue the red-green-refactor cycle for any in-progress work.
197
204
  5. **Quality gates before PR** — Never create a PR with failing checks.
198
- 6. **Code review before next task** — After creating a PR, run all three review channels (Codex CLI, Gemini CLI, Superpowers code-reviewer) and fix all P0/P1/P2 findings before moving on.
199
- 7. **Follow CLAUDE.md** — It is the authority on project conventions and commands.
205
+ 6. **Honor pre-push review when requested** — If the user or project workflow asks for pre-push multi-model review, run `scaffold run review-code` after quality gates and before `git push`.
206
+ 7. **Code review before next task** — After creating a PR, run all three review channels (Codex CLI, Gemini CLI, Superpowers code-reviewer) and fix all P0/P1/P2 findings before moving on.
207
+ 8. **Follow CLAUDE.md** — It is the authority on project conventions and commands.
200
208
 
201
209
  ---
202
210
 
@@ -145,13 +145,20 @@ For each task:
145
145
  - If `tests/evals/` exists, run `make eval` (or equivalent eval command)
146
146
  - Fix any failures before proceeding
147
147
 
148
- 6. **Create PR**
148
+ 6. **Pre-push local code review (when requested or required)**
149
+ - If the user says to review before committing or pushing, or the project's workflow requires a local multi-model gate before `git push`, run `scaffold run review-code`
150
+ - This reviews the local delivery candidate without requiring a PR
151
+ - Surface auth failures immediately and retry after recovery
152
+ - If recovery is not possible, document reduced review coverage and continue with the available channels
153
+ - Fix any P0/P1/P2 findings before proceeding
154
+
155
+ 7. **Create PR**
149
156
  - Push the branch: `git push -u origin HEAD`
150
157
  - Create a pull request: `gh pr create`
151
158
  - Include in the PR description: what was implemented, key decisions, files changed
152
159
  - Follow the PR workflow from `docs/git-workflow.md` or CLAUDE.md
153
160
 
154
- 7. **Run code reviews (MANDATORY)**
161
+ 8. **Run code reviews (MANDATORY)**
155
162
  - Run the review-pr tool: `scaffold run review-pr` (CLI) or `/scaffold:review-pr` (plugin)
156
163
  - This runs **all three** review channels on the PR diff:
157
164
  1. **Codex CLI**: `codex exec --skip-git-repo-check -s read-only --ephemeral "REVIEW_PROMPT" 2>/dev/null`
@@ -162,7 +169,7 @@ For each task:
162
169
  - Fix any P0/P1/P2 findings before proceeding
163
170
  - Do NOT move to the next task until all channels have run
164
171
 
165
- 8. **Update status**
172
+ 9. **Update status**
166
173
  - If Beads: task status is managed via `bd` commands
167
174
  - Without Beads: mark the task as complete in the plan/playbook
168
175
 
@@ -193,10 +200,11 @@ For each task:
193
200
  1. **TDD is not optional** — Write failing tests before implementation. No exceptions.
194
201
  2. **One task at a time** — Complete the current task fully before starting the next.
195
202
  3. **Quality gates before PR** — Never create a PR with failing checks.
196
- 4. **Code review before next task** — After creating a PR, run all three review channels (Codex CLI, Gemini CLI, Superpowers code-reviewer) and fix all P0/P1/P2 findings before moving on.
197
- 5. **Update status immediately** — Mark tasks complete as soon as review passes.
198
- 6. **Consult lessons.md** — Check for relevant anti-patterns before each task.
199
- 7. **Follow CLAUDE.md** — It is the authority on project conventions and commands.
203
+ 4. **Honor pre-push review when requested** — If the user or project workflow asks for pre-push multi-model review, run `scaffold run review-code` after quality gates and before `git push`.
204
+ 5. **Code review before next task** — After creating a PR, run all three review channels (Codex CLI, Gemini CLI, Superpowers code-reviewer) and fix all P0/P1/P2 findings before moving on.
205
+ 6. **Update status immediately** — Mark tasks complete as soon as review passes.
206
+ 7. **Consult lessons.md** — Check for relevant anti-patterns before each task.
207
+ 8. **Follow CLAUDE.md** — It is the authority on project conventions and commands.
200
208
 
201
209
  ---
202
210