feat(manager): add per-step passthrough flags via config
Adds `manager.flags.{discuss,plan,execute}` config keys so users can
configure flags that /gsd:manager passes to each step when dispatching.
For example, `manager.flags.discuss: "--auto --analyze"` makes every
discuss dispatched from the manager include those flags.
Closes #1400
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -413,4 +413,44 @@ describe('init manager', () => {
|
||||
// macOS resolves /var → /private/var; normalize both sides
|
||||
assert.strictEqual(fs.realpathSync(output.project_root), fs.realpathSync(tmpDir));
|
||||
});
|
||||
|
||||
test('output includes manager_flags defaults when not configured', () => {
|
||||
writeState(tmpDir);
|
||||
writeRoadmap(tmpDir, [{ number: '1', name: 'Test' }]);
|
||||
|
||||
const result = runGsdTools('init manager', tmpDir);
|
||||
const output = JSON.parse(result.output);
|
||||
|
||||
assert.ok(output.manager_flags, 'should include manager_flags');
|
||||
assert.strictEqual(output.manager_flags.discuss, '');
|
||||
assert.strictEqual(output.manager_flags.plan, '');
|
||||
assert.strictEqual(output.manager_flags.execute, '');
|
||||
});
|
||||
|
||||
test('output includes manager_flags from config when set', () => {
|
||||
writeState(tmpDir);
|
||||
writeRoadmap(tmpDir, [{ number: '1', name: 'Test' }]);
|
||||
|
||||
// Write config with manager flags
|
||||
fs.writeFileSync(
|
||||
path.join(tmpDir, '.planning', 'config.json'),
|
||||
JSON.stringify({
|
||||
manager: {
|
||||
flags: {
|
||||
discuss: '--auto --analyze',
|
||||
plan: '--skip-research',
|
||||
execute: '--interactive',
|
||||
}
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
const result = runGsdTools('init manager', tmpDir);
|
||||
const output = JSON.parse(result.output);
|
||||
|
||||
assert.ok(output.manager_flags, 'should include manager_flags');
|
||||
assert.strictEqual(output.manager_flags.discuss, '--auto --analyze');
|
||||
assert.strictEqual(output.manager_flags.plan, '--skip-research');
|
||||
assert.strictEqual(output.manager_flags.execute, '--interactive');
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user