@only1btayy/g2w 1.0.24 → 1.0.26
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/README.md +35 -5
- package/lib/install.js +72 -1
- package/package.json +1 -1
- package/skills/bring2life.md +62 -0
- package/skills/the-challenger.md +3 -1
- package/skills/the-inspector.md +6 -4
- package/skills/the-leader.md +9 -1
package/README.md
CHANGED
|
@@ -75,20 +75,50 @@ Research isn't just a web search. G2W uses Context7 for live library docs, Exa f
|
|
|
75
75
|
|
|
76
76
|
---
|
|
77
77
|
|
|
78
|
+
### What Ships With G2W
|
|
79
|
+
|
|
80
|
+
These install automatically — no setup, no API keys, no extra steps:
|
|
81
|
+
|
|
82
|
+
| Tool | What It Does |
|
|
83
|
+
|---|---|
|
|
84
|
+
| [Context7](https://context7.com) | Live library docs in every research and planning phase — no stale training data |
|
|
85
|
+
| [Shadcn/UI MCP](https://www.shadcn.io/mcp) | Real React component implementations with TypeScript props |
|
|
86
|
+
| [Tailwind CSS MCP](https://github.com/CarbonoDev/tailwindcss-mcp-server) | Utility classes, color palettes, CSS-to-Tailwind conversion |
|
|
87
|
+
| [A11y MCP](https://github.com/priyankark/a11y-mcp) | Accessibility audits and WCAG compliance checks |
|
|
88
|
+
|
|
89
|
+
Claude reaches for these automatically when they're relevant. You don't have to call them.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
78
93
|
### Power-Ups
|
|
79
94
|
|
|
80
|
-
|
|
95
|
+
Optional tools that make G2W stronger. Run `g2w power-ups` to set these up anytime.
|
|
96
|
+
|
|
97
|
+
**Free (just needs a key):**
|
|
98
|
+
|
|
99
|
+
| Tool | What It Adds | Get Your Key |
|
|
100
|
+
|---|---|---|
|
|
101
|
+
| [21st.dev](https://21st.dev) | AI-powered UI component generation — like v0 in your IDE | [21st.dev/magic/console](https://21st.dev/magic/console) |
|
|
102
|
+
| [Motion](https://motion.dev) | Production-grade animations with AI Kit | [plus.motion.dev/personal-token](https://plus.motion.dev/personal-token) |
|
|
103
|
+
| [Figma MCP](https://help.figma.com/hc/en-us/articles/32132100833559) | Design-to-code from Figma frames (free during beta) | [figma.com](https://figma.com) |
|
|
104
|
+
| [Marketing Skills](https://github.com/coreyhaines31/marketingskills) | 40+ skills for copywriting, SEO, conversion, growth | No key needed |
|
|
105
|
+
|
|
106
|
+
**Research (paid):**
|
|
81
107
|
|
|
82
108
|
| Tool | What It Adds |
|
|
83
109
|
|---|---|
|
|
84
|
-
| [Repomix](https://github.com/yamadashy/repomix) | Packs entire codebases into one AI-optimized file — `bring2life` and research use this |
|
|
85
|
-
| [Context7](https://context7.com) | Live library docs pulled into research — no stale training data |
|
|
86
110
|
| [Exa](https://exa.ai) | Semantic search for similar projects and best practices |
|
|
87
111
|
| [Firecrawl](https://firecrawl.dev) | Deep crawling of repos and docs sites during research |
|
|
112
|
+
|
|
113
|
+
**Workflow:**
|
|
114
|
+
|
|
115
|
+
| Tool | What It Adds |
|
|
116
|
+
|---|---|
|
|
117
|
+
| [Repomix](https://github.com/yamadashy/repomix) | Packs entire codebases into one AI-optimized file — `bring2life` uses this |
|
|
88
118
|
| [MemPalace](https://github.com/milla-jovovich/mempalace) | Persistent memory across sessions — decisions survive context clears |
|
|
89
119
|
| [Superpowers](https://github.com/supermemoryai/superpowers-claude) | Enhanced planning and review capabilities for Claude users |
|
|
90
120
|
|
|
91
|
-
|
|
121
|
+
G2W uses what's available and falls back gracefully when something isn't there.
|
|
92
122
|
|
|
93
123
|
---
|
|
94
124
|
|
|
@@ -118,7 +148,7 @@ Each Foundation agent is also a direct slash command. The normal flow runs throu
|
|
|
118
148
|
| `/g2w:the-challenger` | You wrote your own plan outside G2W and want it stress-tested before building |
|
|
119
149
|
| `/g2w:the-builder` | Plan is already locked — skip straight to building |
|
|
120
150
|
| `/g2w:the-inspector` | Code is already written — just verify it against a plan |
|
|
121
|
-
| `/g2w:the-leader` | Kick off the full pipeline
|
|
151
|
+
| `/g2w:the-leader` | Kick off the full pipeline — includes automatic code audit before Challenger reviews |
|
|
122
152
|
|
|
123
153
|
These are escape hatches for engineers who don't need the ceremony. G2W has no ceiling.
|
|
124
154
|
|
package/lib/install.js
CHANGED
|
@@ -41,7 +41,7 @@ const G2W_HOOKS = {
|
|
|
41
41
|
]
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
|
-
matcher: 'Edit|Write
|
|
44
|
+
matcher: 'Edit|Write',
|
|
45
45
|
hooks: [
|
|
46
46
|
{
|
|
47
47
|
type: 'prompt',
|
|
@@ -83,6 +83,45 @@ function copyHooks(targetBase) {
|
|
|
83
83
|
return dest;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
const MCP_SERVERS = {
|
|
87
|
+
context7: {
|
|
88
|
+
command: 'npx',
|
|
89
|
+
args: ['-y', '@upstash/context7-mcp@latest']
|
|
90
|
+
},
|
|
91
|
+
'shadcn-ui': {
|
|
92
|
+
url: 'https://www.shadcn.io/api/mcp'
|
|
93
|
+
},
|
|
94
|
+
'tailwindcss': {
|
|
95
|
+
command: 'npx',
|
|
96
|
+
args: ['-y', 'tailwindcss-mcp-server']
|
|
97
|
+
},
|
|
98
|
+
'a11y': {
|
|
99
|
+
command: 'npx',
|
|
100
|
+
args: ['-y', 'a11y-mcp']
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
function mergeMcpServers(targetBase) {
|
|
105
|
+
const settingsPath = path.join(targetBase, '.claude', 'settings.json');
|
|
106
|
+
let existing = {};
|
|
107
|
+
if (fs.existsSync(settingsPath)) {
|
|
108
|
+
try { existing = JSON.parse(fs.readFileSync(settingsPath, 'utf8')); } catch {}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (!existing.mcpServers) existing.mcpServers = {};
|
|
112
|
+
|
|
113
|
+
let added = 0;
|
|
114
|
+
for (const [name, config] of Object.entries(MCP_SERVERS)) {
|
|
115
|
+
if (!existing.mcpServers[name]) {
|
|
116
|
+
existing.mcpServers[name] = config;
|
|
117
|
+
added++;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
fs.writeFileSync(settingsPath, JSON.stringify(existing, null, 2));
|
|
122
|
+
return added;
|
|
123
|
+
}
|
|
124
|
+
|
|
86
125
|
function mergeHooks(targetBase) {
|
|
87
126
|
const settingsPath = path.join(targetBase, '.claude', 'settings.json');
|
|
88
127
|
const hooksDir = path.join(targetBase, '.claude', 'hooks');
|
|
@@ -131,6 +170,19 @@ function removeSkills(targetBase) {
|
|
|
131
170
|
return false;
|
|
132
171
|
}
|
|
133
172
|
|
|
173
|
+
function removeMcpServers(targetBase) {
|
|
174
|
+
const settingsPath = path.join(targetBase, '.claude', 'settings.json');
|
|
175
|
+
if (!fs.existsSync(settingsPath)) return;
|
|
176
|
+
let existing = {};
|
|
177
|
+
try { existing = JSON.parse(fs.readFileSync(settingsPath, 'utf8')); } catch { return; }
|
|
178
|
+
if (existing.mcpServers) {
|
|
179
|
+
for (const name of Object.keys(MCP_SERVERS)) {
|
|
180
|
+
delete existing.mcpServers[name];
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
fs.writeFileSync(settingsPath, JSON.stringify(existing, null, 2));
|
|
184
|
+
}
|
|
185
|
+
|
|
134
186
|
function removeHooks(targetBase) {
|
|
135
187
|
const settingsPath = path.join(targetBase, '.claude', 'settings.json');
|
|
136
188
|
const hooksDir = path.join(targetBase, '.claude', 'hooks');
|
|
@@ -173,6 +225,7 @@ async function run() {
|
|
|
173
225
|
const { dest, count } = copySkills(base);
|
|
174
226
|
copyHooks(base);
|
|
175
227
|
const settingsPath = mergeHooks(base);
|
|
228
|
+
const mcpAdded = mergeMcpServers(base);
|
|
176
229
|
|
|
177
230
|
writeTTY(`${LOGO}
|
|
178
231
|
\x1b[32m✅ G2W installed at ${label}\x1b[0m
|
|
@@ -181,6 +234,23 @@ async function run() {
|
|
|
181
234
|
Hooks → ${path.join(label, 'hooks/')}
|
|
182
235
|
Config → ${path.join(label, 'settings.json')}
|
|
183
236
|
|
|
237
|
+
\x1b[36mIncluded tools:\x1b[0m
|
|
238
|
+
✅ Context7 — live library docs in every research phase
|
|
239
|
+
✅ Shadcn/UI — real React component implementations
|
|
240
|
+
✅ Tailwind CSS — utility classes and CSS conversion
|
|
241
|
+
✅ A11y — accessibility audits and WCAG checks
|
|
242
|
+
|
|
243
|
+
\x1b[33mPower-Ups (optional — run g2w power-ups to set up):\x1b[0m
|
|
244
|
+
→ 21st.dev — AI component generation https://21st.dev/magic/console
|
|
245
|
+
→ Motion — production animations https://plus.motion.dev/personal-token
|
|
246
|
+
→ Figma MCP — design-to-code from Figma https://figma.com
|
|
247
|
+
→ Marketing — 40+ SEO, copy, growth skills https://github.com/coreyhaines31/marketingskills
|
|
248
|
+
→ Exa — semantic search (paid) https://exa.ai
|
|
249
|
+
→ Firecrawl — deep doc crawling (paid) https://firecrawl.dev
|
|
250
|
+
→ Repomix — pack codebases for AI https://github.com/yamadashy/repomix
|
|
251
|
+
→ MemPalace — persistent memory https://github.com/milla-jovovich/mempalace
|
|
252
|
+
→ Superpowers — enhanced planning + review https://github.com/supermemoryai/superpowers-claude
|
|
253
|
+
|
|
184
254
|
Open any project with Claude Code and type:
|
|
185
255
|
/g2w:bring2life — onboard an existing codebase
|
|
186
256
|
/g2w:back2it — resume a session
|
|
@@ -200,6 +270,7 @@ async function uninstall() {
|
|
|
200
270
|
const { base, label } = getTarget();
|
|
201
271
|
const removed = removeSkills(base);
|
|
202
272
|
removeHooks(base);
|
|
273
|
+
removeMcpServers(base);
|
|
203
274
|
|
|
204
275
|
if (removed) {
|
|
205
276
|
console.log(`\n✅ G2W removed from ${label}\n`);
|
package/package.json
CHANGED
package/skills/bring2life.md
CHANGED
|
@@ -99,6 +99,68 @@ Generate all 11:
|
|
|
99
99
|
- `CURRENT.md`
|
|
100
100
|
- `PLAN.md` (leave empty — written by The Visionary when a task begins)
|
|
101
101
|
|
|
102
|
+
## Phase 2b — Code Audit
|
|
103
|
+
|
|
104
|
+
After generating draft docs, run a deep audit of the actual code. Do not wait for the user to ask — this happens automatically. The goal is to show the user the real health of their codebase before they start building on top of it.
|
|
105
|
+
|
|
106
|
+
Scan for:
|
|
107
|
+
|
|
108
|
+
**Bugs & crashes:**
|
|
109
|
+
- Race conditions, thread safety issues
|
|
110
|
+
- Null/undefined access paths
|
|
111
|
+
- Logic errors (duplicate checks, unreachable code, off-by-one)
|
|
112
|
+
- State that can get out of sync
|
|
113
|
+
|
|
114
|
+
**Dead code:**
|
|
115
|
+
- Files with zero references
|
|
116
|
+
- Functions/classes never called
|
|
117
|
+
- Directories that aren't compiled or imported
|
|
118
|
+
- For each: list the file, size, and verdict (delete / flag / verify first)
|
|
119
|
+
|
|
120
|
+
**Anti-patterns:**
|
|
121
|
+
- Copy-pasted logic that should be shared
|
|
122
|
+
- Hardcoded values that should be configurable
|
|
123
|
+
- Missing error handling at system boundaries
|
|
124
|
+
- Overly complex functions that do too many things
|
|
125
|
+
|
|
126
|
+
**Security:**
|
|
127
|
+
- Exposed secrets, API keys, credentials
|
|
128
|
+
- Unvalidated user input
|
|
129
|
+
- Unsafe file operations
|
|
130
|
+
|
|
131
|
+
**Flags worth checking:**
|
|
132
|
+
- Things that work in dev but would break in production
|
|
133
|
+
- Assumptions about paths, environments, or dependencies
|
|
134
|
+
|
|
135
|
+
Write everything to `ERRORS.md` in the project's G2W doc folder. Use this format:
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
# Errors & Issues — [project-name]
|
|
139
|
+
Generated by bring2life: [date]
|
|
140
|
+
|
|
141
|
+
## Critical Bugs
|
|
142
|
+
### ERR-XX — [short title]
|
|
143
|
+
**File:** `path/to/file.ext:line-range`
|
|
144
|
+
**What's wrong:** [explain what the code actually does vs what it should do]
|
|
145
|
+
**The fix:** [specific fix, not vague advice]
|
|
146
|
+
|
|
147
|
+
## Dead Code
|
|
148
|
+
| File | Size | Verdict |
|
|
149
|
+
|------|------|---------|
|
|
150
|
+
| `file.ext` | XXkb | Delete — [reason] |
|
|
151
|
+
|
|
152
|
+
## Anti-Patterns
|
|
153
|
+
[list with file references]
|
|
154
|
+
|
|
155
|
+
## Security
|
|
156
|
+
[list with file references]
|
|
157
|
+
|
|
158
|
+
## Flags
|
|
159
|
+
[things that need human verification before acting on]
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Be specific. File paths, line numbers, what's actually broken and why. No vague "consider improving" — either it's a real issue or don't list it.
|
|
163
|
+
|
|
102
164
|
## Phase 3 — Gap Interview
|
|
103
165
|
|
|
104
166
|
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:
|
package/skills/the-challenger.md
CHANGED
|
@@ -42,7 +42,9 @@ Attack every dimension:
|
|
|
42
42
|
|
|
43
43
|
1. **Read `PLAN.md`** from `~/.g2w/projects/[active-project]/`
|
|
44
44
|
|
|
45
|
-
1b. **
|
|
45
|
+
1b. **Read `ERRORS.md`** from `~/.g2w/projects/[active-project]/` — this is the code audit generated by The Leader. Use it as context: if the plan touches code with known bugs, flag it. If the plan ignores critical issues that should be addressed first, call it out. If ERRORS.md doesn't exist, note it as a finding ("no code audit was run").
|
|
46
|
+
|
|
47
|
+
1c. **Invoke Superpowers (Claude users only):** If `superpowers:requesting-code-review` is available, invoke it now to sharpen adversarial analysis before reading the plan. If not available, proceed with native capabilities.
|
|
46
48
|
|
|
47
49
|
2. **Read the actual codebase** — don't review a plan in a vacuum. Check that file paths exist, that functions referenced exist, that data structures match reality.
|
|
48
50
|
|
package/skills/the-inspector.md
CHANGED
|
@@ -60,10 +60,12 @@ There is no partial pass. The build either passes inspection or it goes back to
|
|
|
60
60
|
## Process
|
|
61
61
|
|
|
62
62
|
1. Read `PLAN.md` — know the contract
|
|
63
|
-
2. Read
|
|
64
|
-
3.
|
|
65
|
-
4.
|
|
66
|
-
5.
|
|
63
|
+
2. Read `ERRORS.md` — know the pre-existing issues
|
|
64
|
+
3. Read every file that was modified
|
|
65
|
+
4. Work through the test matrix item by item
|
|
66
|
+
5. **Update `ERRORS.md`** — mark any issues that were fixed this session as resolved. Add any new issues discovered during verification. Never delete old entries — mark them with `[RESOLVED — date]`.
|
|
67
|
+
6. Report: PASS (all items verified, user confirmed) or FAIL (specific items failing + fix list)
|
|
68
|
+
7. On PASS → tell The Leader: inspection complete, ready for handoff
|
|
67
69
|
|
|
68
70
|
## Rules
|
|
69
71
|
|
package/skills/the-leader.md
CHANGED
|
@@ -24,8 +24,16 @@ You are The Leader. You own the pipeline from task definition to handoff. Every
|
|
|
24
24
|
- Verify PLAN.md exists and has no TBD/TODO/❓ markers before passing to Challenger
|
|
25
25
|
- If markers exist → send back to Visionary. Do not pass incomplete plans.
|
|
26
26
|
|
|
27
|
+
**Phase 1b — Code Audit (auto):**
|
|
28
|
+
- Check if `ERRORS.md` exists in `~/.g2w/projects/[active-project]/`
|
|
29
|
+
- If it doesn't exist OR is older than 7 days → run a full code audit now
|
|
30
|
+
- Scan the codebase for: bugs, crashes, race conditions, dead code, anti-patterns, security issues
|
|
31
|
+
- Write findings to `ERRORS.md` with file paths, line numbers, and specific descriptions
|
|
32
|
+
- This runs automatically — never ask the user if they want an audit. They always do.
|
|
33
|
+
- If `ERRORS.md` already exists and is current → skip, move on
|
|
34
|
+
|
|
27
35
|
**Phase 2 — Challenge:**
|
|
28
|
-
- Hand plan to The Challenger
|
|
36
|
+
- Hand plan AND `ERRORS.md` to The Challenger
|
|
29
37
|
- Receive findings
|
|
30
38
|
- If FAIL → return to Visionary with findings. Loop until Challenger gives PASS.
|
|
31
39
|
- On PASS → LOCK the plan. Announce: "Plan is locked. No modifications after this point."
|