reyson-spec-gate 0.1.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 skill-reyson contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,272 @@
1
+ # skill-reyson
2
+
3
+ An interactive npm installer for a spec-first coding workflow.
4
+
5
+ `skill-reyson` helps teams install a lightweight scaffold that makes coding agents slower in the right place: **before implementation starts**.
6
+
7
+ It enforces a simple rule:
8
+
9
+ > No coding before the spec is clear, the task list exists, and the checklist exists.
10
+
11
+ ---
12
+
13
+ ## What this package installs
14
+
15
+ By default, the installer copies only the core workflow assets into your target directory:
16
+
17
+ - `docs/spec-workflow.md`
18
+ - `skills/generate-task-list/SKILL.md`
19
+ - `skills/generate-checklist/SKILL.md`
20
+
21
+ By default, it **does not** install agent guidance files.
22
+
23
+ If you choose to install agent guidance files during setup, it can also add one or more of:
24
+
25
+ - `AGENTS.md` for Codex-style workflows
26
+ - `CLAUDE.md` for Claude Code-style workflows
27
+ - `RULES.md` as a generic rules entrypoint
28
+
29
+ ---
30
+
31
+ ## Installation
32
+
33
+ ```bash
34
+ npm i -g reyson-spec-gate
35
+ ```
36
+
37
+ ## Quick start
38
+
39
+ Install globally, then run the interactive installer:
40
+
41
+ ```bash
42
+ skill-reyson
43
+ ```
44
+
45
+ Fast path examples:
46
+
47
+ ```bash
48
+ # install only docs + skills into the current project
49
+ skill-reyson install --yes --dir .
50
+
51
+ # install docs + skills + Codex AGENTS.md
52
+ skill-reyson install --yes --dir . --with-agent-files --agents codex
53
+ ```
54
+
55
+ Then run:
56
+
57
+ ```bash
58
+ skill-reyson
59
+ ```
60
+
61
+ or:
62
+
63
+ ```bash
64
+ skill-reyson install
65
+ ```
66
+
67
+ ---
68
+
69
+ ## Interactive setup
70
+
71
+ The CLI is interactive by default.
72
+
73
+ It asks:
74
+ 1. where to install the scaffold
75
+ 2. whether to install agent guidance files
76
+ 3. which agent adapters to install
77
+
78
+ ### Default behavior
79
+
80
+ If you accept the defaults:
81
+ - docs and skills are installed
82
+ - `AGENTS.md` / `CLAUDE.md` / `RULES.md` are **not** installed
83
+
84
+ This matches your desired safe default: **no agent behavior file unless the user opts in**.
85
+
86
+ ---
87
+
88
+ ## Non-interactive setup
89
+
90
+ You can also run the installer non-interactively.
91
+
92
+ ### Install core files only
93
+
94
+ ```bash
95
+ skill-reyson install --yes --dir ./my-project
96
+ ```
97
+
98
+ ### Install core files plus Codex adapter
99
+
100
+ ```bash
101
+ skill-reyson install --yes --dir ./my-project --with-agent-files --agents codex
102
+ ```
103
+
104
+ ### Install multiple agent adapters
105
+
106
+ ```bash
107
+ skill-reyson install --yes --dir ./my-project --with-agent-files --agents codex,claude,generic
108
+ ```
109
+
110
+ ---
111
+
112
+ ## Why this exists
113
+
114
+ In many spec-driven workflows, an agent may produce a decent spec and still move into coding too early.
115
+
116
+ Typical failure modes:
117
+ - the task list is implicit instead of explicit
118
+ - the checklist is missing or too generic
119
+ - the agent starts coding before execution and verification artifacts are aligned
120
+
121
+ `skill-reyson` fixes this by separating the workflow into three responsibilities:
122
+
123
+ - **agent guidance files** tell the agent how to behave
124
+ - **docs** explain the workflow and readiness gate
125
+ - **skills** generate missing artifacts
126
+
127
+ ---
128
+
129
+ ## Repository structure
130
+
131
+ ```text
132
+ skill-reyson/
133
+ ├── AGENTS.md
134
+ ├── LICENSE
135
+ ├── README.md
136
+ ├── package.json
137
+ ├── bin/
138
+ │ └── skill-reyson.js
139
+ ├── docs/
140
+ │ └── spec-workflow.md
141
+ ├── examples/
142
+ │ ├── example-derived-artifacts.md
143
+ │ └── example-input-spec.md
144
+ ├── skills/
145
+ │ ├── generate-task-list/
146
+ │ │ └── SKILL.md
147
+ │ └── generate-checklist/
148
+ │ └── SKILL.md
149
+ └── templates/
150
+ └── adapters/
151
+ ├── AGENTS.md
152
+ ├── CLAUDE.md
153
+ └── RULES.md
154
+ ```
155
+
156
+ ---
157
+
158
+ ## Responsibility split
159
+
160
+ ### 1. Agent guidance files
161
+
162
+ Optional files such as `AGENTS.md`, `CLAUDE.md`, or `RULES.md` act as the enforcement layer.
163
+
164
+ Their job is to tell the agent:
165
+ - read the workflow doc before coding
166
+ - check whether task list and checklist exist
167
+ - generate missing artifacts before implementation
168
+ - revisit the checklist after coding
169
+
170
+ ### 2. `docs/spec-workflow.md`
171
+
172
+ This is the workflow knowledge layer.
173
+
174
+ It defines:
175
+ - the pre-coding gate
176
+ - artifact ordering rules
177
+ - task-list expectations
178
+ - checklist expectations
179
+ - coding readiness rules
180
+ - post-coding review rules
181
+
182
+ ### 3. Skills
183
+
184
+ The two included skills are execution helpers.
185
+
186
+ #### `generate-task-list`
187
+ Use this when the workflow has a spec or plan but no explicit task list.
188
+
189
+ #### `generate-checklist`
190
+ Use this when the workflow has a spec and task list but no explicit checklist.
191
+
192
+ ---
193
+
194
+ ## Core workflow
195
+
196
+ 1. Read the workflow document
197
+ 2. Check whether the current task has a working spec
198
+ 3. Check whether a task list exists
199
+ 4. Check whether a checklist exists
200
+ 5. If task list is missing, generate it
201
+ 6. If checklist is missing, generate it
202
+ 7. Start coding only after the readiness gate is satisfied
203
+ 8. Revisit the checklist after coding
204
+
205
+ ---
206
+
207
+ ## Included examples
208
+
209
+ See:
210
+ - `examples/example-input-spec.md`
211
+ - `examples/example-derived-artifacts.md`
212
+
213
+ These show how a spec can lead to an explicit task list and checklist before coding begins.
214
+
215
+ ---
216
+
217
+ ## Development
218
+
219
+ Run locally without publishing:
220
+
221
+ ```bash
222
+ node bin/skill-reyson.js --help
223
+ node bin/skill-reyson.js install
224
+ ```
225
+
226
+ ---
227
+
228
+ ## Open-source intent
229
+
230
+ This project is meant to stay small, composable, and easy to adapt.
231
+
232
+ Good future extensions:
233
+ - additional agent adapters
234
+ - a readiness report skill
235
+ - templates for Working Spec output
236
+ - project-specific workflow variants
237
+ - validation fixtures and smoke tests
238
+
239
+ ---
240
+
241
+ ## Publish checklist
242
+
243
+ Before publishing to GitHub or npm, verify:
244
+
245
+ - `node bin/skill-reyson.js --help` works
246
+ - `skill-reyson install --yes --dir /tmp/somewhere` copies the expected files
247
+ - default install does **not** copy agent guidance files
248
+ - `--with-agent-files --agents ...` copies the selected adapter files
249
+ - `README.md` matches current CLI behavior
250
+ - `package.json` name, version, license, and bin entry are correct
251
+
252
+ ### Suggested GitHub steps
253
+
254
+ ```bash
255
+ cd /Users/bytedance/Desktop/coding/skill-reyson
256
+ git remote add origin <your-github-repo-url>
257
+ git push -u origin master
258
+ ```
259
+
260
+ ### Suggested npm publish steps
261
+
262
+ ```bash
263
+ cd /Users/bytedance/Desktop/coding/skill-reyson
264
+ npm login
265
+ npm publish
266
+ ```
267
+
268
+ If you want a safer dry run first:
269
+
270
+ ```bash
271
+ npm pack
272
+ ```
@@ -0,0 +1,234 @@
1
+ #!/usr/bin/env node
2
+ const fs = require('fs');
3
+ const path = require('path');
4
+ const os = require('os');
5
+ const readline = require('readline');
6
+
7
+ const PACKAGE_ROOT = path.resolve(__dirname, '..');
8
+ const DOC_SOURCE = path.join(PACKAGE_ROOT, 'docs', 'spec-workflow.md');
9
+ const SKILL_SOURCES = [
10
+ {
11
+ source: path.join(PACKAGE_ROOT, 'skills', 'generate-task-list', 'SKILL.md'),
12
+ relativeTarget: path.join('skills', 'generate-task-list', 'SKILL.md'),
13
+ },
14
+ {
15
+ source: path.join(PACKAGE_ROOT, 'skills', 'generate-checklist', 'SKILL.md'),
16
+ relativeTarget: path.join('skills', 'generate-checklist', 'SKILL.md'),
17
+ },
18
+ ];
19
+ const ADAPTERS = {
20
+ codex: {
21
+ label: 'Codex',
22
+ source: path.join(PACKAGE_ROOT, 'templates', 'adapters', 'AGENTS.md'),
23
+ target: 'AGENTS.md',
24
+ },
25
+ claude: {
26
+ label: 'Claude Code',
27
+ source: path.join(PACKAGE_ROOT, 'templates', 'adapters', 'CLAUDE.md'),
28
+ target: 'CLAUDE.md',
29
+ },
30
+ generic: {
31
+ label: 'Generic rules',
32
+ source: path.join(PACKAGE_ROOT, 'templates', 'adapters', 'RULES.md'),
33
+ target: 'RULES.md',
34
+ },
35
+ };
36
+
37
+ function printHelp() {
38
+ console.log(`skill-reyson
39
+
40
+ Usage:
41
+ skill-reyson Start interactive installer
42
+ skill-reyson install Start interactive installer
43
+ skill-reyson install --dir <path> [--agents codex,claude,generic] [--with-agent-files]
44
+ skill-reyson install --yes [--dir <path>] [--agents codex,claude,generic] [--with-agent-files]
45
+ skill-reyson --help Show help
46
+
47
+ Defaults:
48
+ - Installs docs/spec-workflow.md
49
+ - Installs skills/generate-task-list/SKILL.md
50
+ - Installs skills/generate-checklist/SKILL.md
51
+ - Does NOT install agent guidance files unless requested
52
+ `);
53
+ }
54
+
55
+ function parseArgs(argv) {
56
+ const args = argv.slice(2);
57
+ const options = { command: 'install', dir: process.cwd(), yes: false, withAgentFiles: false, agents: [] };
58
+ if (args[0] && !args[0].startsWith('-')) {
59
+ options.command = args.shift();
60
+ }
61
+ for (let i = 0; i < args.length; i += 1) {
62
+ const arg = args[i];
63
+ if (arg === '--help' || arg === '-h') {
64
+ options.command = 'help';
65
+ } else if (arg === '--yes' || arg === '-y') {
66
+ options.yes = true;
67
+ } else if (arg === '--with-agent-files') {
68
+ options.withAgentFiles = true;
69
+ } else if (arg === '--dir') {
70
+ options.dir = path.resolve(args[i + 1] || process.cwd());
71
+ i += 1;
72
+ } else if (arg.startsWith('--dir=')) {
73
+ options.dir = path.resolve(arg.split('=')[1]);
74
+ } else if (arg === '--agents') {
75
+ options.agents = (args[i + 1] || '').split(',').map((s) => s.trim()).filter(Boolean);
76
+ i += 1;
77
+ } else if (arg.startsWith('--agents=')) {
78
+ options.agents = arg.split('=')[1].split(',').map((s) => s.trim()).filter(Boolean);
79
+ } else {
80
+ throw new Error(`Unknown argument: ${arg}`);
81
+ }
82
+ }
83
+ return options;
84
+ }
85
+
86
+ function ensureDir(dirPath) {
87
+ fs.mkdirSync(dirPath, { recursive: true });
88
+ }
89
+
90
+ function copyFile(source, target) {
91
+ ensureDir(path.dirname(target));
92
+ fs.copyFileSync(source, target);
93
+ }
94
+
95
+ function copyCoreArtifacts(targetDir) {
96
+ const docTarget = path.join(targetDir, 'docs', 'spec-workflow.md');
97
+ copyFile(DOC_SOURCE, docTarget);
98
+ for (const skill of SKILL_SOURCES) {
99
+ copyFile(skill.source, path.join(targetDir, skill.relativeTarget));
100
+ }
101
+ return [
102
+ path.relative(targetDir, docTarget),
103
+ ...SKILL_SOURCES.map((skill) => skill.relativeTarget),
104
+ ];
105
+ }
106
+
107
+ function copyAgentFiles(targetDir, selectedAgents) {
108
+ const copied = [];
109
+ for (const key of selectedAgents) {
110
+ const adapter = ADAPTERS[key];
111
+ if (!adapter) continue;
112
+ copyFile(adapter.source, path.join(targetDir, adapter.target));
113
+ copied.push(adapter.target);
114
+ }
115
+ return copied;
116
+ }
117
+
118
+ function normalizeAgents(agentKeys) {
119
+ return Array.from(new Set(agentKeys.filter((key) => ADAPTERS[key])));
120
+ }
121
+
122
+ function createInterface() {
123
+ return readline.createInterface({ input: process.stdin, output: process.stdout });
124
+ }
125
+
126
+ function ask(rl, question) {
127
+ return new Promise((resolve) => rl.question(question, resolve));
128
+ }
129
+
130
+ async function runInteractive(defaults) {
131
+ const rl = createInterface();
132
+ try {
133
+ console.log('\nskill-reyson interactive installer\n');
134
+ const dirAnswer = await ask(rl, `Target directory [${defaults.dir}]: `);
135
+ const targetDir = path.resolve(dirAnswer.trim() || defaults.dir);
136
+
137
+ const includeAgentAnswer = await ask(rl, 'Install agent guidance files (AGENTS.md / CLAUDE.md / RULES.md)? [y/N]: ');
138
+ const withAgentFiles = /^y(es)?$/i.test(includeAgentAnswer.trim());
139
+
140
+ let agents = [];
141
+ if (withAgentFiles) {
142
+ console.log('\nSelect agent adapters (comma-separated numbers):');
143
+ console.log(' 1) Codex -> AGENTS.md');
144
+ console.log(' 2) Claude Code -> CLAUDE.md');
145
+ console.log(' 3) Generic rules -> RULES.md');
146
+ const agentAnswer = await ask(rl, 'Choice(s) [1]: ');
147
+ const tokens = (agentAnswer.trim() || '1').split(',').map((s) => s.trim());
148
+ const mapping = { '1': 'codex', '2': 'claude', '3': 'generic' };
149
+ agents = normalizeAgents(tokens.map((token) => mapping[token] || token.toLowerCase()));
150
+ if (agents.length === 0) {
151
+ agents = ['codex'];
152
+ }
153
+ }
154
+
155
+ const confirmation = await ask(rl, `\nProceed installing into ${targetDir}? [Y/n]: `);
156
+ const ok = confirmation.trim() === '' || /^y(es)?$/i.test(confirmation.trim());
157
+ if (!ok) {
158
+ console.log('Installation cancelled.');
159
+ return;
160
+ }
161
+
162
+ const result = performInstall({ targetDir, withAgentFiles, agents });
163
+ printSummary(result);
164
+ } finally {
165
+ rl.close();
166
+ }
167
+ }
168
+
169
+ function performInstall({ targetDir, withAgentFiles, agents }) {
170
+ ensureDir(targetDir);
171
+ const coreFiles = copyCoreArtifacts(targetDir);
172
+ const agentFiles = withAgentFiles ? copyAgentFiles(targetDir, normalizeAgents(agents)) : [];
173
+ return { targetDir, coreFiles, agentFiles };
174
+ }
175
+
176
+ function printSummary(result) {
177
+ console.log('\nInstalled skill-reyson scaffold:\n');
178
+ console.log(`Target: ${result.targetDir}`);
179
+ console.log('\nCore files:');
180
+ for (const file of result.coreFiles) {
181
+ console.log(` - ${file}`);
182
+ }
183
+ if (result.agentFiles.length > 0) {
184
+ console.log('\nAgent guidance files:');
185
+ for (const file of result.agentFiles) {
186
+ console.log(` - ${file}`);
187
+ }
188
+ } else {
189
+ console.log('\nAgent guidance files: none (default)');
190
+ }
191
+ console.log('\nNext steps:');
192
+ console.log(' 1) Open docs/spec-workflow.md');
193
+ console.log(' 2) Ensure your agent knows to read the workflow before coding');
194
+ console.log(' 3) Use generate-task-list and generate-checklist when artifacts are missing');
195
+ }
196
+
197
+ async function main() {
198
+ let options;
199
+ try {
200
+ options = parseArgs(process.argv);
201
+ } catch (error) {
202
+ console.error(error.message);
203
+ printHelp();
204
+ process.exit(1);
205
+ }
206
+
207
+ if (options.command === 'help' || options.command === '--help' || options.command === '-h') {
208
+ printHelp();
209
+ return;
210
+ }
211
+
212
+ if (options.command !== 'install') {
213
+ console.error(`Unknown command: ${options.command}`);
214
+ printHelp();
215
+ process.exit(1);
216
+ }
217
+
218
+ if (options.yes) {
219
+ const result = performInstall({
220
+ targetDir: options.dir,
221
+ withAgentFiles: options.withAgentFiles,
222
+ agents: options.agents,
223
+ });
224
+ printSummary(result);
225
+ return;
226
+ }
227
+
228
+ await runInteractive(options);
229
+ }
230
+
231
+ main().catch((error) => {
232
+ console.error(error.stack || error.message);
233
+ process.exit(1);
234
+ });
@@ -0,0 +1,171 @@
1
+ # Spec Workflow
2
+
3
+ This document defines the workflow for spec-driven coding.
4
+
5
+ Its purpose is to prevent the agent from jumping directly from a user request or a loose spec into implementation without first establishing explicit execution and verification artifacts.
6
+
7
+ ---
8
+
9
+ ## 1. Core principle
10
+
11
+ Before coding starts, the implementation must be constrained by three artifacts:
12
+
13
+ 1. a working spec
14
+ 2. a task list
15
+ 3. a checklist
16
+
17
+ If any required artifact is missing, it must be generated before coding begins.
18
+
19
+ ---
20
+
21
+ ## 2. Pre-coding gate
22
+
23
+ Before any implementation work, the agent must verify whether the current task already has:
24
+
25
+ - a clear working spec
26
+ - an explicit task list
27
+ - an explicit checklist
28
+
29
+ If one or more artifacts are missing, the agent must generate the missing artifacts in the required order.
30
+
31
+ ---
32
+
33
+ ## 3. Required order
34
+
35
+ ### Case A: task list missing and checklist missing
36
+
37
+ The agent must:
38
+ 1. generate or normalize the working spec if needed
39
+ 2. generate the task list first
40
+ 3. generate the checklist second
41
+ 4. assess coding readiness
42
+ 5. only then proceed to coding
43
+
44
+ ### Case B: task list exists but checklist missing
45
+
46
+ The agent must:
47
+ 1. validate that the current task list still matches the spec
48
+ 2. generate the checklist from the spec and task list
49
+ 3. assess coding readiness
50
+ 4. only then proceed to coding
51
+
52
+ ### Case C: checklist exists but task list missing
53
+
54
+ The agent must:
55
+ 1. generate the task list first
56
+ 2. validate whether the existing checklist still matches the spec and new task list
57
+ 3. refine or regenerate the checklist if necessary
58
+ 4. assess coding readiness
59
+ 5. only then proceed to coding
60
+
61
+ ### Case D: both exist
62
+
63
+ The agent must:
64
+ 1. verify both artifacts still align with the current spec
65
+ 2. assess coding readiness
66
+ 3. proceed to coding only if no critical ambiguity remains
67
+
68
+ ---
69
+
70
+ ## 4. Working spec requirements
71
+
72
+ The working spec should be compact but explicit.
73
+
74
+ It should include:
75
+ - Goal
76
+ - Scope
77
+ - Non-goals
78
+ - Constraints
79
+ - Risks / ambiguities
80
+
81
+ If a spec already exists, the agent should normalize it instead of rewriting it unnecessarily.
82
+
83
+ ---
84
+
85
+ ## 5. Task list requirements
86
+
87
+ The task list is the execution plan.
88
+
89
+ It must:
90
+ - use concrete implementation tasks
91
+ - separate implementation from validation
92
+ - make dependency order visible
93
+ - expose blockers and unresolved decisions
94
+ - be specific enough that each task can be independently checked
95
+
96
+ Minimum sections:
97
+ - Implementation Tasks
98
+ - Validation Tasks
99
+ - Open Questions / Blockers
100
+
101
+ ---
102
+
103
+ ## 6. Checklist requirements
104
+
105
+ The checklist is the verification plan.
106
+
107
+ It must be derived from the working spec and the task list.
108
+
109
+ It must include:
110
+ - Functional Acceptance
111
+ - Edge Cases
112
+ - Regression Checks
113
+ - Testing
114
+ - Non-functional Checks
115
+
116
+ Checklist items must be testable, reviewable, or otherwise verifiable.
117
+
118
+ The checklist must not be a vague rewrite of the task list.
119
+
120
+ ---
121
+
122
+ ## 7. Coding readiness
123
+
124
+ Coding may begin only when:
125
+ - the spec is clear enough for implementation
126
+ - the task list is explicit
127
+ - the checklist is explicit
128
+ - no critical ambiguity remains
129
+
130
+ Recommended output:
131
+ - Ready / Not Ready
132
+ - Reason
133
+ - Next action
134
+
135
+ ---
136
+
137
+ ## 8. Post-coding review
138
+
139
+ After implementation, the agent must revisit the checklist.
140
+
141
+ Each relevant item should be treated as:
142
+ - completed
143
+ - partially completed
144
+ - not yet verified
145
+
146
+ The agent should not claim the work is complete if critical checklist items remain unresolved.
147
+
148
+ ---
149
+
150
+ ## 9. Notes for spec workflows without built-in task management
151
+
152
+ Some spec-first approaches produce a spec or plan without a strong task-management layer.
153
+
154
+ Examples may include:
155
+ - lightweight planning mode flows
156
+ - open spec style flows
157
+ - antigravity style flows
158
+ - codex plan style flows
159
+ - superpower style flows
160
+
161
+ For these workflows, the missing task list must be explicitly backfilled before coding.
162
+
163
+ ---
164
+
165
+ ## 10. Summary rule
166
+
167
+ No coding before:
168
+ 1. spec is clear
169
+ 2. task list exists
170
+ 3. checklist exists
171
+ 4. readiness is confirmed
@@ -0,0 +1,43 @@
1
+ # Example Derived Artifacts
2
+
3
+ ## Task List
4
+
5
+ ### Implementation Tasks
6
+ - add multi-select state to the task list page
7
+ - add bulk archive action trigger in the UI
8
+ - implement batch archive request handling in the action layer
9
+ - preserve single-task archive behavior
10
+ - surface partial-failure and full-success feedback
11
+
12
+ ### Validation Tasks
13
+ - test archive with one item, multiple items, and zero selected items
14
+ - verify filters and pagination still behave correctly after archive
15
+ - verify existing single-task archive flow still works
16
+
17
+ ### Open Questions / Blockers
18
+ - should archived items disappear immediately or only after refresh?
19
+
20
+ ## Checklist
21
+
22
+ ### Functional Acceptance
23
+ - user can select multiple tasks and archive them in one action
24
+ - success feedback appears after a successful bulk archive
25
+ - failures are visible and do not silently pass
26
+
27
+ ### Edge Cases
28
+ - zero selected items does not trigger archive
29
+ - partial API failure is surfaced clearly
30
+ - archiving items across multiple pages is either supported or explicitly blocked
31
+
32
+ ### Regression Checks
33
+ - single-task archive still works
34
+ - filters remain stable after archive
35
+ - pagination state does not break unexpectedly
36
+
37
+ ### Testing
38
+ - add unit or integration coverage for batch archive behavior
39
+ - verify UI state resets correctly after success and failure
40
+
41
+ ### Non-functional Checks
42
+ - bulk archive does not create duplicate requests
43
+ - loading and error states are observable to the user
@@ -0,0 +1,17 @@
1
+ # Example Input Spec
2
+
3
+ ## Goal
4
+ Add a bulk archive action to the task list page.
5
+
6
+ ## Scope
7
+ - allow selecting multiple tasks
8
+ - allow archiving selected tasks in one action
9
+ - show success and error feedback
10
+
11
+ ## Non-goals
12
+ - no permanent delete
13
+ - no redesign of the task page layout
14
+
15
+ ## Constraints
16
+ - preserve existing single-task archive behavior
17
+ - do not break current filters or pagination
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "reyson-spec-gate",
3
+ "version": "0.1.0",
4
+ "description": "Interactive installer for a spec-first workflow scaffold with docs, skills, and optional agent guidance files.",
5
+ "type": "commonjs",
6
+ "bin": {
7
+ "skill-reyson": "bin/skill-reyson.js"
8
+ },
9
+ "files": [
10
+ "bin",
11
+ "docs",
12
+ "skills",
13
+ "templates",
14
+ "examples",
15
+ "README.md",
16
+ "LICENSE"
17
+ ],
18
+ "keywords": [
19
+ "codex",
20
+ "agents",
21
+ "skills",
22
+ "spec-first",
23
+ "checklist",
24
+ "task-list",
25
+ "workflow"
26
+ ],
27
+ "license": "MIT"
28
+ }
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: generate-checklist
3
+ description: Generate an explicit implementation checklist from a working spec and task list before coding. Use when acceptance criteria, edge cases, regression checks, testing scope, or non-functional checks are missing or still implicit in a spec-first workflow.
4
+ ---
5
+
6
+ # Generate Checklist
7
+
8
+ ## Purpose
9
+
10
+ This skill generates a concrete checklist that constrains implementation and verification before coding begins.
11
+
12
+ It should be used after the working spec is available and preferably after the task list has been generated or normalized.
13
+
14
+ ## Preferred inputs
15
+
16
+ Use these inputs in order:
17
+ 1. Working spec
18
+ 2. Explicit task list
19
+ 3. Existing acceptance notes or review notes
20
+
21
+ If the task list is missing, request or trigger task-list generation first unless the caller explicitly overrides the process.
22
+
23
+ ## Required output
24
+
25
+ Produce a checklist with these sections:
26
+ - Functional Acceptance
27
+ - Edge Cases
28
+ - Regression Checks
29
+ - Testing
30
+ - Non-functional Checks
31
+
32
+ ## Rules
33
+
34
+ - Every checklist item must be testable, reviewable, or otherwise verifiable
35
+ - Derive checklist items from actual spec commitments and task-list implications
36
+ - Do not rewrite the task list as vague checklist bullets
37
+ - Include boundary conditions and negative paths when relevant
38
+ - Include migration, compatibility, rollback, observability, performance, security, or documentation checks when relevant
39
+ - Refine generic items until they become implementation-relevant
40
+
41
+ ## Quality bar
42
+
43
+ A good checklist should:
44
+ - define what “done” really means
45
+ - reduce implementation drift
46
+ - catch omissions before and after coding
47
+ - force attention to edge cases and regressions
48
+
49
+ ## Output template
50
+
51
+ ### Checklist
52
+
53
+ #### Functional Acceptance
54
+ - ...
55
+
56
+ #### Edge Cases
57
+ - ...
58
+
59
+ #### Regression Checks
60
+ - ...
61
+
62
+ #### Testing
63
+ - ...
64
+
65
+ #### Non-functional Checks
66
+ - ...
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: generate-task-list
3
+ description: Generate or normalize an explicit task list from a working spec, plan, or user requirement before coding. Use when a spec-first workflow lacks a concrete task list, when an implicit plan needs to be made executable, or when validation tasks and blockers need to be separated clearly.
4
+ ---
5
+
6
+ # Generate Task List
7
+
8
+ ## Purpose
9
+
10
+ This skill converts a working spec, plan, or user requirement into an explicit task list that can guide implementation safely.
11
+
12
+ Use it when the workflow has a spec but no concrete task-management layer, or when the existing task list is too vague to support reliable coding.
13
+
14
+ ## Inputs
15
+
16
+ Prefer these inputs in order:
17
+ 1. Working spec
18
+ 2. Existing plan or outline
19
+ 3. User request and clarified constraints
20
+
21
+ ## Required output
22
+
23
+ Produce a task list with these sections:
24
+ - Implementation Tasks
25
+ - Validation Tasks
26
+ - Open Questions / Blockers
27
+
28
+ ## Rules
29
+
30
+ - Use concrete, implementation-relevant tasks
31
+ - Order tasks by execution dependency
32
+ - Split build work from validation work
33
+ - Do not hide ambiguity inside tasks; surface it under blockers or open questions
34
+ - Make each task independently checkable
35
+ - If the input plan is already good, normalize rather than rewrite aggressively
36
+
37
+ ## Quality bar
38
+
39
+ A good task list should:
40
+ - make coding order obvious
41
+ - expose missing decisions early
42
+ - reduce the chance of skipping validation
43
+ - be specific enough that another agent could execute from it
44
+
45
+ ## Output template
46
+
47
+ ### Task List
48
+
49
+ #### Implementation Tasks
50
+ - ...
51
+
52
+ #### Validation Tasks
53
+ - ...
54
+
55
+ #### Open Questions / Blockers
56
+ - ...
@@ -0,0 +1,16 @@
1
+ # AGENTS.md
2
+
3
+ ## Spec-first workflow rules
4
+
5
+ Before any implementation task, read `docs/spec-workflow.md`.
6
+
7
+ Before coding begins, verify whether the current work includes:
8
+ - an explicit task list
9
+ - an explicit checklist
10
+
11
+ If the task list is missing, generate it first.
12
+ If the checklist is missing, generate it second.
13
+ If both are missing, generate both before coding.
14
+
15
+ Do not begin implementation until the pre-coding gate is satisfied.
16
+ After coding, revisit the checklist before claiming completion.
@@ -0,0 +1,16 @@
1
+ # CLAUDE.md
2
+
3
+ ## Spec-first workflow rules
4
+
5
+ Before any implementation task, read `docs/spec-workflow.md`.
6
+
7
+ Before coding begins, verify whether the current work includes:
8
+ - an explicit task list
9
+ - an explicit checklist
10
+
11
+ If the task list is missing, generate it first.
12
+ If the checklist is missing, generate it second.
13
+ If both are missing, generate both before coding.
14
+
15
+ Do not begin implementation until the pre-coding gate is satisfied.
16
+ After coding, revisit the checklist before claiming completion.
@@ -0,0 +1,16 @@
1
+ # RULES.md
2
+
3
+ ## Spec-first workflow rules
4
+
5
+ Before any implementation task, read `docs/spec-workflow.md`.
6
+
7
+ Before coding begins, verify whether the current work includes:
8
+ - an explicit task list
9
+ - an explicit checklist
10
+
11
+ If the task list is missing, generate it first.
12
+ If the checklist is missing, generate it second.
13
+ If both are missing, generate both before coding.
14
+
15
+ Do not begin implementation until the pre-coding gate is satisfied.
16
+ After coding, revisit the checklist before claiming completion.