@only1btayy/g2w 1.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.
- package/LICENSE +21 -0
- package/README.md +199 -0
- package/bin/g2w.js +20 -0
- package/lib/install.js +166 -0
- package/package.json +27 -0
- package/skills/back2basics.md +48 -0
- package/skills/back2it.md +37 -0
- package/skills/bring2life.md +96 -0
- package/skills/build2gether.md +70 -0
- package/skills/cut2it.md +43 -0
- package/skills/get2work.md +43 -0
- package/skills/ready2save.md +54 -0
- package/skills/true2dagame.md +101 -0
- package/skills/true2plan.md +69 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ONLY1BTAYY
|
|
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,199 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<img src="assets/logo.png" width="600" alt="G2W" />
|
|
4
|
+
|
|
5
|
+
</div>
|
|
6
|
+
|
|
7
|
+
# G2W
|
|
8
|
+
|
|
9
|
+
The best relationships are built on trust. Trust comes from honesty, and honesty breeds clarity and understanding.
|
|
10
|
+
|
|
11
|
+
I got tired of going in circles with Claude and others because the systems I was using were not set up in a way that builds trust between the user and the model. Some of the top CEOs and big business people who use AI are not concerned with the question — "can it build?" Instead they are focused on — "can we trust what it builds and can we ship it?"
|
|
12
|
+
|
|
13
|
+
This is not a workflow system. Not a task runner. This is a protocol for building trust between you and your AI so what gets built is actually what you envisioned. No more back and forth and all the other bullshit that gets in the way.
|
|
14
|
+
|
|
15
|
+
**G2W is a relationship protocol.**
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
[](https://www.npmjs.com/package/g2w)
|
|
20
|
+
[](LICENSE)
|
|
21
|
+
[](https://claude.ai/code)
|
|
22
|
+
[]()
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm install -g g2w
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
g2w install
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
1. Global ~/.claude/ available in all projects
|
|
36
|
+
2. Local ./.claude/ this project only
|
|
37
|
+
|
|
38
|
+
✅ G2W installed — 9 skills + hooks ready.
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Works on Mac, Windows, and Linux.**
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
[The Name](#the-name) · [The Problem](#the-problem) · [How It Works](#how-it-works) · [The Commands](#the-commands) · [How 2 Install](#how-2-install) · [Who It's For](#who-its-for) · [Philosophy](#the-philosophy)
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## The Name
|
|
50
|
+
|
|
51
|
+
I named G2W after my motto in life — "It's going to work or it's going to work." This is a perspective shift I had that allows me to view even the apparent losses in life as wins because the gems are in the data. Every loss, every mistake, every doubt and fear we have is data that is filled with gems. We just have to choose to look at it that way. The people who change the world are often considered crazy and delusional until they actually change it. Then the "crazy" becomes genius and the "delusional" becomes relentless. I want you to dare to be relentless in your approach to the challenges in life and remember — it's going to work or it's going to work — ain't no other options.
|
|
52
|
+
|
|
53
|
+
No in-between. No failure as an option. Two paths and both lead to success.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## The Problem
|
|
58
|
+
|
|
59
|
+
You've worked with AI before. You know how it goes.
|
|
60
|
+
|
|
61
|
+
You say "make this button this size" and it does something else and explains why it was right. You spend an hour in a discussion session and then have to repeat everything again when it's time to plan. It makes a change that breaks three other things it never bothered to check. It commits code you didn't approve. It guesses instead of asking.
|
|
62
|
+
|
|
63
|
+
G2W fixes all of that. Not by adding more rules but by building a system that genuinely earns trust.
|
|
64
|
+
|
|
65
|
+
The problem was never intelligence. The problem was process.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## How It Works
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
### The Modular Doc System
|
|
74
|
+
|
|
75
|
+
Every project gets a full set of living documents — `ARCHITECTURE.md`, `CONVENTIONS.md`, `ERRORS.md`, `CHANGELOG.md`, and more. The rule is simple: when you change code that any doc describes, update that doc in the same session. No separate documentation pass. No stale docs. The knowledge base stays current automatically.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
### Talk Once. Plan Once. Build.
|
|
80
|
+
|
|
81
|
+
You start a conversation. You describe your vision. G2W listens, asks smart questions, and runs research silently in the background — tech stack, existing solutions, the ecosystem. By the time you're done talking, the plan is already written and locked.
|
|
82
|
+
|
|
83
|
+
No separate phases. No repeating yourself. Just a conversation that ends with something ready to build.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### The Foundation
|
|
88
|
+
|
|
89
|
+
Once the plan locks, The Foundation takes over. Five roles. One mission. Get it right the first time.
|
|
90
|
+
|
|
91
|
+
| Agent | Role |
|
|
92
|
+
|---|---|
|
|
93
|
+
| The Visionary | Writes a complete plan with real decisions and no placeholders |
|
|
94
|
+
| The Challenger | Adversarial review — finds every way the plan could fail before coding starts |
|
|
95
|
+
| The Builder | Builds exactly what the locked plan says, nothing extra |
|
|
96
|
+
| The Inspector | Verifies everything against the plan and loops until it's clean |
|
|
97
|
+
| The Leader | Manages the team and keeps everything on track |
|
|
98
|
+
|
|
99
|
+
The plan is the contract. By the time The Builder touches a single line of code, every decision has already been made.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
### The Trust Layer
|
|
104
|
+
|
|
105
|
+
Delivered via hook so it runs every single session, not just when the AI remembers.
|
|
106
|
+
|
|
107
|
+
- Your explicit instruction is a direct order. No agent may override it, rationalize it away, or route around it.
|
|
108
|
+
- The AI answers your question first and then asks to proceed — never just acts.
|
|
109
|
+
- No edits outside the declared scope.
|
|
110
|
+
- No commits without your approval.
|
|
111
|
+
- "I don't know" instead of guessing — always.
|
|
112
|
+
- Uncertainty is labeled, not hidden. `[Inference]` and `[Unverified]` are used so you always know what's confirmed and what isn't.
|
|
113
|
+
- If scope creeps, it stops and flags it before touching anything.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
### The A-Game Hook
|
|
118
|
+
|
|
119
|
+
Before any edit or bug fix, A-Game fires automatically.
|
|
120
|
+
|
|
121
|
+
- What does this change touch?
|
|
122
|
+
- What could break downstream?
|
|
123
|
+
- Is this more complex than it looks?
|
|
124
|
+
- Does every function, model, or method being referenced actually exist?
|
|
125
|
+
|
|
126
|
+
Only after working through those questions does execution begin. Taking more time upfront is always better than going in circles.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
### Git Without The Friction
|
|
131
|
+
|
|
132
|
+
Safe git operations — add, commit, push, status, log — run without approval prompts. One command handles the whole thing. Add, commit, push. Done. No multi-step back and forth, no unnecessary interruptions. You stay in flow.
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## The Commands
|
|
137
|
+
|
|
138
|
+
| Command | What It Does |
|
|
139
|
+
|---|---|
|
|
140
|
+
| `/g2w:bring2life` | Onboard an existing codebase — scans it, generates your doc files, flags gaps |
|
|
141
|
+
| `/g2w:build2gether` | Start a new project — brainstorm, research, and locked plan in one conversation |
|
|
142
|
+
| `/g2w:back2it` | Pick up right where you left off |
|
|
143
|
+
| `/g2w:get2work` | Execute the current task |
|
|
144
|
+
| `/g2w:cut2it` | Fast mode — small tasks, no ceremony |
|
|
145
|
+
| `/g2w:back2basics` | Strip context and start clean |
|
|
146
|
+
| `/g2w:true2plan` | Verify that what was built actually matches the plan |
|
|
147
|
+
| `/g2w:true2dagame` | Full system health check |
|
|
148
|
+
| `/g2w:ready2save` | Wrap up the session — update CURRENT.md, capture key decisions and the reasoning behind them, hand off cleanly |
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## How 2 Install
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
npm install -g g2w
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Then `cd` into your project and run:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
g2w install
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
You'll be asked:
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
1. Global ~/.claude/ available in all projects
|
|
168
|
+
2. Local ./.claude/ this project only
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Pick 1 to set it and forget it. Pick 2 if you want G2W in just one project.
|
|
172
|
+
|
|
173
|
+
> **Tip:** The logo renders in **bright green** in any terminal. On Windows Terminal or iTerm2, enable Retro/Bloom effects for the full glow.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Who It's For
|
|
178
|
+
|
|
179
|
+
Everyone tired of the bullshit. Vibe coders who just want to ship. Senior engineers who want control. Solo builders with no team and no co-founder.
|
|
180
|
+
|
|
181
|
+
If you've ever felt like your AI was working against you instead of with you, G2W is for you.
|
|
182
|
+
|
|
183
|
+
G2W works in other models — the Modular Doc System and commands are model-agnostic. But Claude Code is where it's fully alive. The Trust Layer, A-Game Hook, and context warnings are all hook-delivered, which means they run every single session without relying on the AI to remember. Other models get the workflow. Claude Code gets the guarantees.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## The Philosophy
|
|
188
|
+
|
|
189
|
+
Speed comes from simplicity. Control comes from clarity. If you need a system to manage your system, it's already broken. G2W is not a factory. It's a studio.
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Status
|
|
194
|
+
|
|
195
|
+
Under active development. First real-world test case is Blackhole VST running through `/g2w:bring2life`.
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
*Built by ONLY1BTAYY · MIT License · Claude Code native*
|
package/bin/g2w.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const [,, command = 'help'] = process.argv;
|
|
4
|
+
|
|
5
|
+
if (command === 'install') {
|
|
6
|
+
require('../lib/install').run();
|
|
7
|
+
} else if (command === 'update') {
|
|
8
|
+
require('../lib/install').update();
|
|
9
|
+
} else if (command === 'uninstall') {
|
|
10
|
+
require('../lib/install').uninstall();
|
|
11
|
+
} else {
|
|
12
|
+
console.log(`
|
|
13
|
+
G2W — It's going to work or it's going to work.
|
|
14
|
+
|
|
15
|
+
Usage:
|
|
16
|
+
g2w install — set up G2W (choose global or local)
|
|
17
|
+
g2w update — update skills to latest version
|
|
18
|
+
g2w uninstall — remove G2W
|
|
19
|
+
`);
|
|
20
|
+
}
|
package/lib/install.js
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
const os = require('os');
|
|
4
|
+
const readline = require('readline');
|
|
5
|
+
|
|
6
|
+
const SKILLS_SRC = path.join(__dirname, '../skills');
|
|
7
|
+
|
|
8
|
+
const G2W_HOOKS = {
|
|
9
|
+
PreToolUse: [
|
|
10
|
+
{
|
|
11
|
+
matcher: 'Edit|Write|Bash',
|
|
12
|
+
hooks: [
|
|
13
|
+
{
|
|
14
|
+
type: 'prompt',
|
|
15
|
+
prompt: 'Trust Layer + A-Game check: answer the user\'s question first before acting. Declare scope (exact files you will touch). Stop if scope creeps beyond what was declared. Say "I don\'t know" instead of guessing. No commits without explicit user approval. A-Game: what does this change touch? What could break downstream? Is it more complex than it looks? If the user seems stuck or frustrated — remind them of their vision, not just fix the code.'
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
PostMessage: [
|
|
21
|
+
{
|
|
22
|
+
matcher: '.*',
|
|
23
|
+
hooks: [
|
|
24
|
+
{
|
|
25
|
+
type: 'prompt',
|
|
26
|
+
prompt: 'If the context window is at or above 80%, tell the user: "Hey — we\'re getting close to the context limit. Want me to run /g2w:ready2save to save progress and clear context?" If below 80%, do nothing.'
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
function prompt(question) {
|
|
34
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
35
|
+
return new Promise(resolve => rl.question(question, answer => { rl.close(); resolve(answer.trim()); }));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function copySkills(targetBase) {
|
|
39
|
+
const dest = path.join(targetBase, '.claude', 'skills', 'g2w');
|
|
40
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
41
|
+
const files = fs.readdirSync(SKILLS_SRC).filter(f => f.endsWith('.md'));
|
|
42
|
+
files.forEach(file => {
|
|
43
|
+
fs.copyFileSync(path.join(SKILLS_SRC, file), path.join(dest, file));
|
|
44
|
+
});
|
|
45
|
+
return { dest, count: files.length };
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function mergeHooks(targetBase) {
|
|
49
|
+
const settingsPath = path.join(targetBase, '.claude', 'settings.json');
|
|
50
|
+
fs.mkdirSync(path.join(targetBase, '.claude'), { recursive: true });
|
|
51
|
+
|
|
52
|
+
let existing = {};
|
|
53
|
+
if (fs.existsSync(settingsPath)) {
|
|
54
|
+
try { existing = JSON.parse(fs.readFileSync(settingsPath, 'utf8')); } catch {}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (!existing.hooks) existing.hooks = {};
|
|
58
|
+
|
|
59
|
+
// Merge PreToolUse — append if not already present
|
|
60
|
+
if (!existing.hooks.PreToolUse) existing.hooks.PreToolUse = [];
|
|
61
|
+
const alreadyHasPreHook = existing.hooks.PreToolUse.some(h =>
|
|
62
|
+
h.hooks && h.hooks.some(hh => hh.prompt && hh.prompt.includes('Trust Layer'))
|
|
63
|
+
);
|
|
64
|
+
if (!alreadyHasPreHook) {
|
|
65
|
+
existing.hooks.PreToolUse.push(...G2W_HOOKS.PreToolUse);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Merge PostMessage — append if not already present
|
|
69
|
+
if (!existing.hooks.PostMessage) existing.hooks.PostMessage = [];
|
|
70
|
+
const alreadyHasPostHook = existing.hooks.PostMessage.some(h =>
|
|
71
|
+
h.hooks && h.hooks.some(hh => hh.prompt && hh.prompt.includes('ready2save'))
|
|
72
|
+
);
|
|
73
|
+
if (!alreadyHasPostHook) {
|
|
74
|
+
existing.hooks.PostMessage.push(...G2W_HOOKS.PostMessage);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
fs.writeFileSync(settingsPath, JSON.stringify(existing, null, 2));
|
|
78
|
+
return settingsPath;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function removeSkills(targetBase) {
|
|
82
|
+
const dest = path.join(targetBase, '.claude', 'skills', 'g2w');
|
|
83
|
+
if (fs.existsSync(dest)) {
|
|
84
|
+
fs.rmSync(dest, { recursive: true, force: true });
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function removeHooks(targetBase) {
|
|
91
|
+
const settingsPath = path.join(targetBase, '.claude', 'settings.json');
|
|
92
|
+
if (!fs.existsSync(settingsPath)) return;
|
|
93
|
+
|
|
94
|
+
let existing = {};
|
|
95
|
+
try { existing = JSON.parse(fs.readFileSync(settingsPath, 'utf8')); } catch { return; }
|
|
96
|
+
|
|
97
|
+
if (existing.hooks) {
|
|
98
|
+
if (existing.hooks.PreToolUse) {
|
|
99
|
+
existing.hooks.PreToolUse = existing.hooks.PreToolUse.filter(h =>
|
|
100
|
+
!(h.hooks && h.hooks.some(hh => hh.prompt && hh.prompt.includes('Trust Layer')))
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
if (existing.hooks.PostMessage) {
|
|
104
|
+
existing.hooks.PostMessage = existing.hooks.PostMessage.filter(h =>
|
|
105
|
+
!(h.hooks && h.hooks.some(hh => hh.prompt && hh.prompt.includes('ready2save')))
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
fs.writeFileSync(settingsPath, JSON.stringify(existing, null, 2));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
async function getTarget() {
|
|
114
|
+
console.log(`
|
|
115
|
+
G2W — Install
|
|
116
|
+
|
|
117
|
+
Where should G2W be installed?
|
|
118
|
+
|
|
119
|
+
1. Global ~/.claude/ available in all projects
|
|
120
|
+
2. Local ./.claude/ this project only
|
|
121
|
+
|
|
122
|
+
`);
|
|
123
|
+
const answer = await prompt('Enter 1 or 2: ');
|
|
124
|
+
if (answer === '1') return { base: os.homedir(), label: '~/.claude/' };
|
|
125
|
+
if (answer === '2') return { base: process.cwd(), label: `./.claude/` };
|
|
126
|
+
console.log('Invalid choice. Please enter 1 or 2.');
|
|
127
|
+
return getTarget();
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
async function run() {
|
|
131
|
+
const { base, label } = await getTarget();
|
|
132
|
+
const { dest, count } = copySkills(base);
|
|
133
|
+
const settingsPath = mergeHooks(base);
|
|
134
|
+
|
|
135
|
+
console.log(`
|
|
136
|
+
✅ G2W installed at ${label}
|
|
137
|
+
|
|
138
|
+
${count} skills → ${path.join(label, 'skills/g2w/')}
|
|
139
|
+
Hooks → ${path.join(label, 'settings.json')}
|
|
140
|
+
|
|
141
|
+
Open any project with Claude Code and type:
|
|
142
|
+
/g2w:bring2life — onboard an existing codebase
|
|
143
|
+
/g2w:back2it — resume a session
|
|
144
|
+
/g2w:build2gether — start something new
|
|
145
|
+
`);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
async function update() {
|
|
149
|
+
const { base, label } = await getTarget();
|
|
150
|
+
copySkills(base);
|
|
151
|
+
console.log(`\n✅ G2W skills updated at ${label}\n`);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
async function uninstall() {
|
|
155
|
+
const { base, label } = await getTarget();
|
|
156
|
+
const removed = removeSkills(base);
|
|
157
|
+
removeHooks(base);
|
|
158
|
+
|
|
159
|
+
if (removed) {
|
|
160
|
+
console.log(`\n✅ G2W removed from ${label}\n`);
|
|
161
|
+
} else {
|
|
162
|
+
console.log(`\nG2W was not found at ${label}\n`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
module.exports = { run, update, uninstall };
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@only1btayy/g2w",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "G2W — a relationship protocol for building trust with AI",
|
|
5
|
+
"bin": {
|
|
6
|
+
"g2w": "bin/g2w.js"
|
|
7
|
+
},
|
|
8
|
+
"files": [
|
|
9
|
+
"bin/",
|
|
10
|
+
"lib/",
|
|
11
|
+
"skills/"
|
|
12
|
+
],
|
|
13
|
+
"engines": {
|
|
14
|
+
"node": ">=18"
|
|
15
|
+
},
|
|
16
|
+
"license": "MIT",
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "git+https://github.com/ONLY1BTAYY/G2W.git"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [
|
|
22
|
+
"claude",
|
|
23
|
+
"ai",
|
|
24
|
+
"workflow",
|
|
25
|
+
"claude-code"
|
|
26
|
+
]
|
|
27
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: back2basics
|
|
3
|
+
description: Strip context down to the minimum — when things are going in circles, reset and start clean
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /g2w:back2basics
|
|
7
|
+
|
|
8
|
+
Things got complicated. Step back. Start clean. One thing at a time.
|
|
9
|
+
|
|
10
|
+
## When to Use This
|
|
11
|
+
|
|
12
|
+
- The session has gone in circles
|
|
13
|
+
- Context is bloated with dead-ends and false starts
|
|
14
|
+
- You're not sure what's actually true anymore
|
|
15
|
+
- Something feels off and you need a clean read
|
|
16
|
+
|
|
17
|
+
## Steps
|
|
18
|
+
|
|
19
|
+
1. **Stop everything** — do not continue any current line of work.
|
|
20
|
+
|
|
21
|
+
2. **Read only `CURRENT.md`** — nothing else yet.
|
|
22
|
+
|
|
23
|
+
3. **Ask the user one question:**
|
|
24
|
+
> "What is the single most important thing we need to get working right now?"
|
|
25
|
+
|
|
26
|
+
4. **Based on their answer, read exactly one doc:**
|
|
27
|
+
- Bug/error → `ERRORS.md`
|
|
28
|
+
- New feature → `ARCHITECTURE.md`
|
|
29
|
+
- Code style question → `CONVENTIONS.md`
|
|
30
|
+
- Unclear what's built → `FEATURES.md`
|
|
31
|
+
|
|
32
|
+
5. **State what you know:**
|
|
33
|
+
```
|
|
34
|
+
Current state: [what CURRENT.md says]
|
|
35
|
+
One doc read: [which doc, what's relevant]
|
|
36
|
+
Task: [the one thing the user named]
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
6. **Ask:** "Ready to work on just this one thing?"
|
|
40
|
+
|
|
41
|
+
7. **Proceed with minimal context** — read additional files only as the task absolutely requires them.
|
|
42
|
+
|
|
43
|
+
## Rules
|
|
44
|
+
|
|
45
|
+
- Do not read more than one doc in this step — that defeats the purpose
|
|
46
|
+
- Do not carry forward assumptions from earlier in the session — treat this as a fresh start
|
|
47
|
+
- If the user's answer involves multiple things, ask them to pick one
|
|
48
|
+
- Stay narrow until the one task is done, then re-assess
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: back2it
|
|
3
|
+
description: Resume the last G2W session — reads CURRENT.md and relevant docs, gets back up to speed in seconds
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /g2w:back2it
|
|
7
|
+
|
|
8
|
+
You are resuming a G2W session. Get back up to speed fast. No fluff.
|
|
9
|
+
|
|
10
|
+
## Steps
|
|
11
|
+
|
|
12
|
+
1. **Read `CURRENT.md`** in the project root. This is your source of truth.
|
|
13
|
+
|
|
14
|
+
2. **Read one supporting doc** based on what's In Progress:
|
|
15
|
+
- If In Progress involves code structure or a new feature → read `ARCHITECTURE.md`
|
|
16
|
+
- If In Progress involves a bug or error → read `ERRORS.md`
|
|
17
|
+
- If In Progress involves writing or modifying code → read `CONVENTIONS.md`
|
|
18
|
+
- If nothing is In Progress → no additional doc needed
|
|
19
|
+
|
|
20
|
+
3. **Doc integrity check:** Does the doc you read still match the current state? If something looks stale, flag it before touching anything else.
|
|
21
|
+
|
|
22
|
+
4. **Output a 4-line summary** (no more):
|
|
23
|
+
```
|
|
24
|
+
Last done: [what was completed]
|
|
25
|
+
In progress: [what's active, or "nothing"]
|
|
26
|
+
Next: [immediate next task]
|
|
27
|
+
Blockers: [any known issues, or "none"]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
5. Ask: "Ready to pick up where we left off?"
|
|
31
|
+
|
|
32
|
+
## Rules
|
|
33
|
+
|
|
34
|
+
- Do not read files beyond what's needed for the current task
|
|
35
|
+
- Do not start executing anything — this is orientation only
|
|
36
|
+
- If CURRENT.md is missing or empty, say so and ask the user to describe where things stand
|
|
37
|
+
- If docs look out of sync with the code, fix the doc FIRST before touching anything else
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bring2life
|
|
3
|
+
description: Onboard an existing codebase into G2W — scan what's there, generate doc drafts, flag gaps, ask what it couldn't figure out
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /g2w:bring2life
|
|
7
|
+
|
|
8
|
+
You are reverse-engineering a G2W doc system from an existing codebase. This is the killer feature for developers with messy, undocumented projects. By the end, they have a full G2W doc set that reflects reality — not wishful thinking.
|
|
9
|
+
|
|
10
|
+
## Phase 1 — Silent Scan
|
|
11
|
+
|
|
12
|
+
Read the codebase. Do not ask any questions yet. Your job right now is to understand what's actually there.
|
|
13
|
+
|
|
14
|
+
Look for:
|
|
15
|
+
- Language, framework, build tooling (package.json, Cargo.toml, pyproject.toml, Makefile, etc.)
|
|
16
|
+
- Folder structure and what lives where
|
|
17
|
+
- Key entry points (main file, index, server start, etc.)
|
|
18
|
+
- Dependencies and versions
|
|
19
|
+
- Any existing README, docs, or comments
|
|
20
|
+
- Patterns in the code (naming conventions, file organization, common idioms)
|
|
21
|
+
- Signs of known bugs or TODOs (grep for `TODO`, `FIXME`, `HACK`, `XXX`)
|
|
22
|
+
- Signs of what's built vs in-progress vs broken
|
|
23
|
+
|
|
24
|
+
Do not announce what you're reading. Just read.
|
|
25
|
+
|
|
26
|
+
## Phase 2 — Generate Draft Docs
|
|
27
|
+
|
|
28
|
+
Write first-draft versions of all 10 G2W docs based on what you found.
|
|
29
|
+
|
|
30
|
+
For every field you're confident about: fill it in.
|
|
31
|
+
For every field you're uncertain about: write `❓ [UNKNOWN — needs your input]`
|
|
32
|
+
For every field that clearly doesn't apply: write `N/A`
|
|
33
|
+
|
|
34
|
+
Generate all 10:
|
|
35
|
+
- `CLAUDE.md`
|
|
36
|
+
- `ARCHITECTURE.md`
|
|
37
|
+
- `CONVENTIONS.md`
|
|
38
|
+
- `FEATURES.md`
|
|
39
|
+
- `ERRORS.md`
|
|
40
|
+
- `CHANGELOG.md`
|
|
41
|
+
- `TESTING.md`
|
|
42
|
+
- `SCALING.md`
|
|
43
|
+
- `SECURITY.md`
|
|
44
|
+
- `CURRENT.md`
|
|
45
|
+
|
|
46
|
+
## Phase 3 — Gap Interview
|
|
47
|
+
|
|
48
|
+
After generating drafts, ask the questions you couldn't answer from the code alone. Ask them conversationally — no more than 3 at a time. Cover:
|
|
49
|
+
|
|
50
|
+
**Vision questions:**
|
|
51
|
+
- What is this project actually for? (The README might lie — I want your words.)
|
|
52
|
+
- What's the end state you're building toward?
|
|
53
|
+
|
|
54
|
+
**Known issues:**
|
|
55
|
+
- What's the biggest thing that's broken right now?
|
|
56
|
+
- Is there anything I should never touch without asking you first?
|
|
57
|
+
|
|
58
|
+
**History:**
|
|
59
|
+
- Are there any decisions in the codebase that look weird but are intentional? (Things I might "fix" that would break something.)
|
|
60
|
+
|
|
61
|
+
**Testing:**
|
|
62
|
+
- How do you currently verify something works before calling it done?
|
|
63
|
+
- Is there a build step, deploy step, or environment I need to know about?
|
|
64
|
+
|
|
65
|
+
**Future:**
|
|
66
|
+
- What's the next thing you're going to build?
|
|
67
|
+
|
|
68
|
+
Fill in the `❓ [UNKNOWN]` gaps based on their answers.
|
|
69
|
+
|
|
70
|
+
## Phase 4 — Final Output
|
|
71
|
+
|
|
72
|
+
Write the completed doc files to the project root.
|
|
73
|
+
|
|
74
|
+
Output a summary:
|
|
75
|
+
```
|
|
76
|
+
bring2life complete.
|
|
77
|
+
|
|
78
|
+
Docs generated: 10
|
|
79
|
+
Auto-filled from code: [X fields]
|
|
80
|
+
Filled from your answers: [X fields]
|
|
81
|
+
Still needs input: [list any remaining ❓ items]
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Then:
|
|
85
|
+
> "Your G2W doc system is live. Next time you open this project, start with `/g2w:back2it`."
|
|
86
|
+
|
|
87
|
+
If this is a Blackhole VST project (C++ / JUCE):
|
|
88
|
+
> "Run Blackhole through the full pipeline next — `/g2w:build2gether` to start your first G2W task."
|
|
89
|
+
|
|
90
|
+
## Rules
|
|
91
|
+
|
|
92
|
+
- Read the actual code — do not generate docs from assumptions
|
|
93
|
+
- Every `❓ [UNKNOWN]` is honest uncertainty — better than a confident wrong answer
|
|
94
|
+
- Do not create `CURRENT.md` with "In Progress" items you invented — only use what the user confirms
|
|
95
|
+
- Do not modify any existing code during this process — docs only
|
|
96
|
+
- If the codebase is very large (100+ files), prioritize: entry points, core modules, known pain areas
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build2gether
|
|
3
|
+
description: Start a new project or feature — structured discussion, silent background research, locked plan. Talk once. Plan once. Build.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /g2w:build2gether
|
|
7
|
+
|
|
8
|
+
You are starting something new. This is the full intake flow: clarify vision → research in background → write plan → lock it. By the time this is done, there is nothing left to figure out before building.
|
|
9
|
+
|
|
10
|
+
## Phase 0 — Requirements Clarification
|
|
11
|
+
|
|
12
|
+
Ask the user these questions **conversationally** — not as a numbered list all at once. Ask 1-2 at a time, listen, follow up. This IS the brainstorm.
|
|
13
|
+
|
|
14
|
+
Core questions to cover:
|
|
15
|
+
- What are we building? Describe it like you're explaining to a smart friend.
|
|
16
|
+
- What does "done" look like? What's the first thing you'll do to test it?
|
|
17
|
+
- What are the hard constraints? (platform, tech stack, deadlines, budget)
|
|
18
|
+
- What could go wrong? Walk me through the failure cases you're already worried about.
|
|
19
|
+
- What's NOT in scope? What are we explicitly not building right now?
|
|
20
|
+
- Any existing code, patterns, or docs I need to read first?
|
|
21
|
+
|
|
22
|
+
Do not move to planning until you can answer all of these confidently. If an answer is vague, ask again.
|
|
23
|
+
|
|
24
|
+
## Phase 1 — Silent Research (while talking)
|
|
25
|
+
|
|
26
|
+
While the conversation is happening, spin background research agents for:
|
|
27
|
+
- Existing solutions or libraries that solve part of this problem
|
|
28
|
+
- Known pitfalls or edge cases in this tech area
|
|
29
|
+
- Relevant patterns from the project's existing codebase (if any)
|
|
30
|
+
|
|
31
|
+
Research is invisible to the user. It informs the plan — the user never feels it.
|
|
32
|
+
|
|
33
|
+
## Phase 2 — Planning
|
|
34
|
+
|
|
35
|
+
Once requirements are locked and research is complete:
|
|
36
|
+
|
|
37
|
+
**Planner Agent** writes a complete plan:
|
|
38
|
+
- No placeholders. Actual code, actual file names, actual decisions.
|
|
39
|
+
- Declares exactly which files will be created or modified — nothing undeclared
|
|
40
|
+
- Writes a concrete definition of done for this specific task
|
|
41
|
+
- Estimates scope honestly: small / medium / large
|
|
42
|
+
|
|
43
|
+
**Reviewer Agent** does an adversarial pass:
|
|
44
|
+
- Job: find every way this plan could fail
|
|
45
|
+
- Must answer: environment differences, edge cases, undeclared file touches, regressions, ambiguities a coder could resolve the wrong way
|
|
46
|
+
- Loops with Planner until the Reviewer can find nothing wrong
|
|
47
|
+
- Plan is then locked — no agent may modify it after this point
|
|
48
|
+
|
|
49
|
+
## Phase 3 — Lock & Hand Off
|
|
50
|
+
|
|
51
|
+
Present the locked plan to the user. Summary format:
|
|
52
|
+
```
|
|
53
|
+
Plan locked.
|
|
54
|
+
|
|
55
|
+
What we're building: [1 sentence]
|
|
56
|
+
Files touched: [list]
|
|
57
|
+
Definition of done: [specific verification steps]
|
|
58
|
+
Scope: [small / medium / large]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Then output:
|
|
62
|
+
> "Plan's locked — ready to build? (`/g2w:get2work`)"
|
|
63
|
+
|
|
64
|
+
## Rules
|
|
65
|
+
|
|
66
|
+
- Never start planning until ambiguity is zero
|
|
67
|
+
- Research happens silently — don't announce agents spinning up
|
|
68
|
+
- The plan must be complete enough that a different Claude session could execute it cold
|
|
69
|
+
- Once locked, the plan cannot be changed without re-running this command
|
|
70
|
+
- If the user changes requirements mid-plan, restart Phase 0 — don't patch a partial plan
|
package/skills/cut2it.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cut2it
|
|
3
|
+
description: Fast mode — for clearly scoped, low-risk changes. Skip planning ceremony, declare scope, build, verify.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /g2w:cut2it
|
|
7
|
+
|
|
8
|
+
No ceremony. You know what you're doing, it's small, and it's low-risk. Get it done.
|
|
9
|
+
|
|
10
|
+
## When to Use This
|
|
11
|
+
|
|
12
|
+
Use `/g2w:cut2it` only when ALL of these are true:
|
|
13
|
+
- The change is clearly scoped (you could describe it in one sentence)
|
|
14
|
+
- It touches 1-3 files max
|
|
15
|
+
- It's low risk (not touching auth, payments, core logic, or anything that could cascade)
|
|
16
|
+
- No adversarial plan review is needed
|
|
17
|
+
|
|
18
|
+
If you're unsure about any of these → use `/g2w:build2gether` instead.
|
|
19
|
+
|
|
20
|
+
## Steps
|
|
21
|
+
|
|
22
|
+
1. **User describes the task** — one sentence. If it takes more than one sentence, it's not `/g2w:cut2it` territory.
|
|
23
|
+
|
|
24
|
+
2. **Declare scope** — immediately, before touching anything:
|
|
25
|
+
```
|
|
26
|
+
Scope: [what you're changing and why]
|
|
27
|
+
Files: [exact list]
|
|
28
|
+
Not touching: [anything nearby that could be confused]
|
|
29
|
+
```
|
|
30
|
+
Wait for approval.
|
|
31
|
+
|
|
32
|
+
3. **Build** — fast, focused, exactly what was described. Nothing extra.
|
|
33
|
+
|
|
34
|
+
4. **Verify** — show proof it works. Do not say "should work."
|
|
35
|
+
|
|
36
|
+
5. **Done** — that's it. No formal commit ceremony unless the user asks. No `/g2w:true2plan` required.
|
|
37
|
+
|
|
38
|
+
## Rules
|
|
39
|
+
|
|
40
|
+
- If anything unexpected comes up mid-build → stop and flag it. Don't improvise.
|
|
41
|
+
- If scope grows beyond what was declared → stop, re-declare, get re-approval
|
|
42
|
+
- No "while I'm in here" improvements
|
|
43
|
+
- If it turns out to be more complex than expected → say so and escalate to `/g2w:build2gether`
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: get2work
|
|
3
|
+
description: Execute the locked plan — declare scope, build exactly what was planned, nothing extra
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /g2w:get2work
|
|
7
|
+
|
|
8
|
+
You are executing a locked plan. Build exactly what it says. Nothing extra. Nothing "improved."
|
|
9
|
+
|
|
10
|
+
## Steps
|
|
11
|
+
|
|
12
|
+
1. **Read the locked plan** — if no plan exists or it's not locked, stop and say:
|
|
13
|
+
> "No locked plan found. Run `/g2w:build2gether` first."
|
|
14
|
+
|
|
15
|
+
2. **Read `CONVENTIONS.md`** — know the rules before touching code.
|
|
16
|
+
|
|
17
|
+
3. **Declare scope** — before writing a single line, output:
|
|
18
|
+
```
|
|
19
|
+
Scope declaration:
|
|
20
|
+
Files I will create: [list, or "none"]
|
|
21
|
+
Files I will modify: [list, or "none"]
|
|
22
|
+
Files I will NOT touch: [anything nearby that could be confused]
|
|
23
|
+
```
|
|
24
|
+
Wait for the user to approve scope. Do not proceed without approval.
|
|
25
|
+
|
|
26
|
+
4. **Build** — execute the plan in order:
|
|
27
|
+
- One logical unit at a time
|
|
28
|
+
- After each unit: brief status ("Done: [what was just built]")
|
|
29
|
+
- If anything unexpected comes up mid-build → STOP. Do not improvise. Flag it:
|
|
30
|
+
> "Unexpected: [what happened]. This wasn't in the plan. How do you want to handle it?"
|
|
31
|
+
|
|
32
|
+
5. **Stay in scope** — if the work requires touching a file not in the declaration:
|
|
33
|
+
> "Scope creep: I need to touch [file] which wasn't declared. Stopping. Do you want me to re-declare scope?"
|
|
34
|
+
|
|
35
|
+
6. **On completion** → automatically run `/g2w:true2plan`
|
|
36
|
+
|
|
37
|
+
## Rules
|
|
38
|
+
|
|
39
|
+
- Never add features, improvements, or "while I'm in here" changes
|
|
40
|
+
- Never touch undeclared files without explicit re-approval
|
|
41
|
+
- If something is ambiguous in the plan, ask — don't interpret
|
|
42
|
+
- "Done" means verified, not just written — do not claim completion without proof
|
|
43
|
+
- After `/g2w:true2plan` passes: run `/g2w:ready2save` to commit and hand off
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ready2save
|
|
3
|
+
description: Wrap up the current G2W session — save decisions, update CURRENT.md, commit verified work, hand off cleanly
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /g2w:ready2save
|
|
7
|
+
|
|
8
|
+
You are closing out this session. Leave the project in a state where any future session can pick up instantly.
|
|
9
|
+
|
|
10
|
+
## Steps
|
|
11
|
+
|
|
12
|
+
1. **Capture decisions** — Ask the user:
|
|
13
|
+
> "What key decisions did we make this session that future-me needs to know? (reasoning behind choices, not just what was done)"
|
|
14
|
+
|
|
15
|
+
Wait for their answer. Do not skip this.
|
|
16
|
+
|
|
17
|
+
2. **Update `CURRENT.md`** with exactly three sections:
|
|
18
|
+
```
|
|
19
|
+
## Last Completed
|
|
20
|
+
[What was finished and verified this session — be specific]
|
|
21
|
+
|
|
22
|
+
## In Progress
|
|
23
|
+
[What is actively unfinished, or write "(none)"]
|
|
24
|
+
|
|
25
|
+
## Next
|
|
26
|
+
[The single most important next task]
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
3. **Write a handoff note** at the bottom of `CURRENT.md` under `## Session Notes — [date]`:
|
|
30
|
+
- What was built
|
|
31
|
+
- Key decisions made AND the reasoning behind them (the WHY matters more than the WHAT)
|
|
32
|
+
- Any gotchas or "don't do this again" lessons
|
|
33
|
+
- What to read first next session
|
|
34
|
+
|
|
35
|
+
4. **Commit** everything that was verified this session:
|
|
36
|
+
```
|
|
37
|
+
type: short summary
|
|
38
|
+
|
|
39
|
+
- What changed
|
|
40
|
+
- What changed
|
|
41
|
+
- Verified: [how it was verified]
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Present the commit message to the user. Wait for approval before running.
|
|
45
|
+
|
|
46
|
+
5. **Announce:**
|
|
47
|
+
> "Saved. Context is clean. Next session, type `/g2w:back2it` to pick up right where we left off."
|
|
48
|
+
|
|
49
|
+
## Rules
|
|
50
|
+
|
|
51
|
+
- Never commit unverified work — if something wasn't tested, say so and don't include it
|
|
52
|
+
- The handoff note must capture WHY decisions were made, not just what was done
|
|
53
|
+
- If the user skips the decisions question, prompt once more — this is the most important part
|
|
54
|
+
- Do not clear context or close anything — that's the user's call
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: true2dagame
|
|
3
|
+
description: Full G2W system health check — are docs in sync, is the plan locked, are there unresolved critical errors?
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /g2w:true2dagame
|
|
7
|
+
|
|
8
|
+
You are auditing the project's G2W health. No rubber-stamping. Find what's broken before it breaks you.
|
|
9
|
+
|
|
10
|
+
## Checks
|
|
11
|
+
|
|
12
|
+
Run each check and record ✅ PASS, ⚠️ WARNING, or ❌ FAIL.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
### 1. Doc Sync Check
|
|
17
|
+
|
|
18
|
+
For each G2W doc that exists in this project:
|
|
19
|
+
- Does `ARCHITECTURE.md` reflect the current tech stack and structure?
|
|
20
|
+
- Does `FEATURES.md` reflect what's actually built vs what's broken vs what's next?
|
|
21
|
+
- Does `ERRORS.md` list the current known bugs with accurate severity?
|
|
22
|
+
- Does `CONVENTIONS.md` match the patterns actually used in the code?
|
|
23
|
+
- Does `CURRENT.md` reflect the actual current state (not last week's)?
|
|
24
|
+
|
|
25
|
+
Flag any doc that looks stale or inconsistent with what you can observe.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
### 2. Plan Status Check
|
|
30
|
+
|
|
31
|
+
- Does a locked plan exist for the current task?
|
|
32
|
+
- Is it locked (not a draft)?
|
|
33
|
+
- Does it have a clear definition of done?
|
|
34
|
+
- Are all declared files still accurate (none renamed, deleted, or added since locking)?
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
### 3. Error Status Check
|
|
39
|
+
|
|
40
|
+
- Read `ERRORS.md`
|
|
41
|
+
- Flag any CRITICAL or HIGH severity errors that are unresolved
|
|
42
|
+
- Are any errors listed as "in progress" but stale (no recent activity)?
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
### 4. CURRENT.md Freshness
|
|
47
|
+
|
|
48
|
+
- Does `CURRENT.md` reflect the last session accurately?
|
|
49
|
+
- Is "In Progress" still actually in progress, or was it finished and not updated?
|
|
50
|
+
- Is "Next" still the right next task?
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
### 5. Git Hygiene
|
|
55
|
+
|
|
56
|
+
- Are there uncommitted verified changes sitting in the working tree?
|
|
57
|
+
- Does the last commit message follow G2W format (type + summary + bullets + verified)?
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Output Format
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
G2W Health Check — [date]
|
|
65
|
+
|
|
66
|
+
Docs:
|
|
67
|
+
✅ ARCHITECTURE.md — in sync
|
|
68
|
+
✅ FEATURES.md — in sync
|
|
69
|
+
⚠️ ERRORS.md — ERR-01 marked critical, no activity in 3 sessions
|
|
70
|
+
❌ CONVENTIONS.md — missing (not created yet)
|
|
71
|
+
|
|
72
|
+
Plan:
|
|
73
|
+
✅ Plan locked
|
|
74
|
+
✅ Definition of done present
|
|
75
|
+
⚠️ 2 declared files may have been renamed since lock
|
|
76
|
+
|
|
77
|
+
Errors:
|
|
78
|
+
⚠️ ERR-01 — CRITICAL, unresolved
|
|
79
|
+
✅ No stale "in progress" errors
|
|
80
|
+
|
|
81
|
+
CURRENT.md:
|
|
82
|
+
✅ Looks fresh
|
|
83
|
+
|
|
84
|
+
Git:
|
|
85
|
+
✅ No uncommitted verified changes
|
|
86
|
+
✅ Last commit follows G2W format
|
|
87
|
+
|
|
88
|
+
Overall: ⚠️ WARNINGS FOUND — review before building
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## After the Report
|
|
92
|
+
|
|
93
|
+
- If ❌ FAIL items exist → fix them before any other work proceeds
|
|
94
|
+
- If ⚠️ WARNING items exist → surface them to the user, ask if they want to address now or log for later
|
|
95
|
+
- If all ✅ → "System is healthy. Ready to build."
|
|
96
|
+
|
|
97
|
+
## Rules
|
|
98
|
+
|
|
99
|
+
- Don't just check if files exist — read enough to assess if they're accurate
|
|
100
|
+
- A doc that exists but is 6 months stale is worse than no doc (false confidence)
|
|
101
|
+
- If you can't check something (no access, build required), say so — don't guess ✅
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: true2plan
|
|
3
|
+
description: Verify that what was built matches what the plan declared — PASS/FAIL per item, no rubber-stamping
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /g2w:true2plan
|
|
7
|
+
|
|
8
|
+
You are the verifier. Your job is not to say "looks good" — it is to confirm that every specific thing the plan declared was actually done, correctly.
|
|
9
|
+
|
|
10
|
+
## Steps
|
|
11
|
+
|
|
12
|
+
1. **Read the locked plan** — specifically:
|
|
13
|
+
- Files declared to be created or modified
|
|
14
|
+
- Definition of done
|
|
15
|
+
- Any specific behaviors or outputs promised
|
|
16
|
+
|
|
17
|
+
2. **Read `TESTING.md`** — run through the checklist for this area.
|
|
18
|
+
|
|
19
|
+
3. **Verify file-by-file:**
|
|
20
|
+
|
|
21
|
+
For each declared file:
|
|
22
|
+
- Was it created/modified as declared? → PASS / FAIL
|
|
23
|
+
- Does the implementation match what the plan described? → PASS / FAIL
|
|
24
|
+
|
|
25
|
+
4. **Verify definition of done:**
|
|
26
|
+
|
|
27
|
+
Run each verification step from the plan. Record actual result vs expected.
|
|
28
|
+
|
|
29
|
+
5. **Regression check:**
|
|
30
|
+
|
|
31
|
+
- What was working before this change (pull from TESTING.md)?
|
|
32
|
+
- Is that list still intact? → PASS / FAIL
|
|
33
|
+
|
|
34
|
+
6. **Output the report:**
|
|
35
|
+
```
|
|
36
|
+
Verification Report
|
|
37
|
+
|
|
38
|
+
File checks:
|
|
39
|
+
✅ src/foo.ts — created as declared
|
|
40
|
+
✅ src/bar.ts — modified as declared
|
|
41
|
+
❌ src/baz.ts — declared but not touched
|
|
42
|
+
|
|
43
|
+
Definition of done:
|
|
44
|
+
✅ [step 1 from plan] — verified
|
|
45
|
+
✅ [step 2 from plan] — verified
|
|
46
|
+
❌ [step 3 from plan] — FAILED: [what actually happened]
|
|
47
|
+
|
|
48
|
+
Regression:
|
|
49
|
+
✅ [previously working thing] — still works
|
|
50
|
+
⚠️ [previously working thing] — could not verify, needs manual check
|
|
51
|
+
|
|
52
|
+
Result: PASS / FAIL
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
7. **If FAIL** → say exactly what's wrong and hand back to `/g2w:get2work`:
|
|
56
|
+
> "Verification failed. Back to building — [specific issues]."
|
|
57
|
+
|
|
58
|
+
8. **If PASS** → update docs and hand off:
|
|
59
|
+
- Update `CHANGELOG.md` with what was built and when
|
|
60
|
+
- Update `FEATURES.md` if a feature was added
|
|
61
|
+
- Update `ERRORS.md` if a bug was fixed
|
|
62
|
+
- Then: "Verified. Run `/g2w:ready2save` to commit and close out."
|
|
63
|
+
|
|
64
|
+
## Rules
|
|
65
|
+
|
|
66
|
+
- "Should work" is not verification — run the actual steps
|
|
67
|
+
- A PASS with unresolved ⚠️ warnings is not a full PASS — flag them clearly
|
|
68
|
+
- Never mark PASS if docs weren't updated
|
|
69
|
+
- If you can't verify something (missing environment, build required), say so explicitly — don't guess
|