Skip to content

Commit 5b9e69d

Browse files
committed
Add /osmani-build skill — phase-gated product-build lifecycle over addyosmani/agent-skills
1 parent 8667860 commit 5b9e69d

4 files changed

Lines changed: 169 additions & 10 deletions

File tree

CHEATSHEET.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ The commands I reach for most. Full reference below.
1717
| `/safetycheck` | Security audit — scans for exposed keys, injection vectors, supply-chain risks |
1818
| `/gitfix` | Full repo sync — reads every file, fixes doc drift, makes reality match the README |
1919
| `/recon <thing>` | Pre-build prior-art sweep — ranks competitors, finds the edge, GREEN/YELLOW/RED verdict before you build |
20+
| `/osmani-build` | Phase-gated product-build lifecycle (define → plan → build → verify → review → ship) orchestrating the [addyosmani/agent-skills](https://github.com/addyosmani/agent-skills) plugin — offers itself when you start building a real product |
2021
| `/save` | Capture a conversation into your 2ndBrain vault *(requires [2ndBrain-mogging](https://github.com/fidgetcoding/2ndBrain-mogging))* |
2122

2223
---
@@ -129,6 +130,7 @@ These are custom skills installed by the setup scripts. Type them inside a Claud
129130
| `/bullets` | Step 4 | Crush a prose blob into the shortest possible bullets — one fact per bullet, ≤~12 words, zero fluff, signal preserved (names, numbers, dates, paths, decisions). Always outputs bullets, unlike `/concise` which decides shape per reply and sometimes leaves prose. Built for document handoffs where nobody should have to read paragraph blobs. Also triggers in plain English — "bullet this", "bulletize", "turn this into bullets" |
130131
| `/gitfix` | Step 7 | Full repo sync — reads every install script, skill file, and doc in the repo, finds every inconsistency between the code and the documentation, and fixes all of it. Run this any time you've made changes to a repo and need the README, cheatsheet, and all other docs to reflect reality. Also responds to "fix the github", "sync the repo", or "update the readme" in plain English |
131132
| `/recon` | Step 7 | Pre-build prior-art recon. Before you build a tool/app/CLI/MCP/library, sweeps GitHub (via `gh`) + the web for what already exists, ranks the top ~10 free and paid competitors in a comparison table, finds where an edge exists (or honestly calls it a red ocean), and ends with a GREEN/YELLOW/RED verdict. Output is a discussion — building starts only after. Auto-offers itself when you say "build / make / start a new X" or "does X exist?"; run it directly with `/recon <thing>` to skip the offer |
133+
| `/osmani-build` | Step 7 | Phase-gated product-build lifecycle over the [addyosmani/agent-skills](https://github.com/addyosmani/agent-skills) Claude Code plugin (24 skills: define → plan → build → verify → review → ship). Auto-offers itself (alongside `/recon`) when you start building a real tool/app/webapp/CLI/MCP/API — not creative ideation. Greenfield builds enter at Define (requirements interview → idea refine → spec); builds already in motion never get retroactive planning — they enter at Verify → Review → Ship. Run `/osmani-build <phase>` to jump straight to a phase |
132134
| `/safetycheck` | Step 8 | Security audit — scans any project for exposed keys, missing rate limiting, input sanitization gaps, dependency vulnerabilities, and insecure configurations. Also responds to "run a safety check" in plain English. Auto-activates 12 MCP-specific checks on MCP projects |
133135

134136
### 2ndBrain-mogging skills *(requires [2ndBrain-mogging](https://github.com/fidgetcoding/2ndBrain-mogging) installed)*
@@ -146,7 +148,7 @@ These are custom skills installed by the setup scripts. Type them inside a Claud
146148
| `/tether` | Repair orphaned notes, bidirectionally link projects and hubs |
147149
| `/connect` | Bridge two notes — surfaces structural analogies, transfer opportunities, collision ideas |
148150

149-
> These are **explicit triggers** — you type the command to activate the skill. This is different from the auto-triggered tools below, which respond to natural language. Exceptions: `/w4w` also works without the slash (just type `w4w` anywhere in your message), `/safetycheck` responds to "run a safety check", `/gitfix` responds to "fix the github" / "sync the repo" / "update the readme", `/recon` auto-offers itself whenever you say "build / make / start a new X" or "does X exist?", and `/bullets` responds to "bullet this" / "bulletize" / "turn this into bullets". All other slash commands require you to type the command.
151+
> These are **explicit triggers** — you type the command to activate the skill. This is different from the auto-triggered tools below, which respond to natural language. Exceptions: `/w4w` also works without the slash (just type `w4w` anywhere in your message), `/safetycheck` responds to "run a safety check", `/gitfix` responds to "fix the github" / "sync the repo" / "update the readme", `/recon` and `/osmani-build` auto-offer themselves (one combined question) whenever you say "build / make / start a new X" or "does X exist?", and `/bullets` responds to "bullet this" / "bulletize" / "turn this into bullets". All other slash commands require you to type the command.
150152
151153
---
152154

@@ -177,7 +179,7 @@ These activate on their own when Claude detects a relevant task via natural lang
177179
| Obsidian | 2ndBrain-mogging | Natural language — read/write/search a local Obsidian vault (set up via [fidgetcoding/2ndBrain-mogging](https://github.com/fidgetcoding/2ndBrain-mogging)) | "Search my vault for notes about machine learning" |
178180
| Canva | Add-on | Natural language — create or edit designs, social posts, presentations | "Design a social media post for our launch" |
179181

180-
> **Key distinction:** Slash commands (`/fswarm`, `/fswarm1``/fswarmmax`, `/fmini`, `/fmini1``/fminimax`, `/fhive`, `/w4w`, `/concise`, `/bullets`, `/safetycheck`, `/gitfix`, `/recon`, plus the 2ndBrain-mogging `/save`, `/wiki`, `/challenge`, `/emerge`, `/backfill`, `/aliases`, `/autoresearch`, `/canvas`, `/tether`, `/connect`) require you to type the command. Everything in this table works by just talking to Claude naturally.
182+
> **Key distinction:** Slash commands (`/fswarm`, `/fswarm1``/fswarmmax`, `/fmini`, `/fmini1``/fminimax`, `/fhive`, `/w4w`, `/concise`, `/bullets`, `/safetycheck`, `/gitfix`, `/recon`, `/osmani-build`, plus the 2ndBrain-mogging `/save`, `/wiki`, `/challenge`, `/emerge`, `/backfill`, `/aliases`, `/autoresearch`, `/canvas`, `/tether`, `/connect`) require you to type the command. Everything in this table works by just talking to Claude naturally.
181183
>
182184
> **Add-on tools** (Canva) are not part of the step-by-step setup — they're optional MCP servers you can connect separately. Claude auto-detects them when they're installed. Figma, Excalidraw, and Gamma live in [creativity-maxxing](https://github.com/fidgetcoding/creativity-maxxing).
183185

install.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ if [ "${#MISSING_CRUMBS[@]}" -gt 0 ]; then
172172
fi
173173

174174
echo " Available commands: cskip, ctg, cc, ccr, ccc"
175-
echo " Available skills: /fswarm, /fmini, /fhive, /w4w, /concise, /bullets, /safetycheck, /gitfix, /recon"
175+
echo " Available skills: /fswarm, /fmini, /fhive, /w4w, /concise, /bullets, /safetycheck, /gitfix, /recon, /osmani-build"
176176
echo " Swarm tiers: /fswarm{1,2,3,max}, /fmini{1,2,3,max} — 1=think, 2=think hard, 3=think harder, max=ultrathink"
177177
echo ""
178178
echo " Three steps require interactive input — run them separately:"
@@ -183,7 +183,7 @@ echo ""
183183
echo " Step 6 (Telegram — optional, skip if you don't have a bot token):"
184184
echo " bash <(curl -fsSL https://raw.githubusercontent.com/fidgetcoding/cli-maxxing/main/step-6/step-6-install.sh)"
185185
echo ""
186-
echo " Step 7 (GitHub — MCP + /gitfix + /recon skills, optional, for devs):"
186+
echo " Step 7 (GitHub — MCP + /gitfix + /recon + /osmani-build skills, optional, for devs):"
187187
echo " bash <(curl -fsSL https://raw.githubusercontent.com/fidgetcoding/cli-maxxing/main/step-7/step-7-install.sh)"
188188
echo ""
189189
echo " Companion repos (install after this):"

osmani-build-skill/SKILL.md

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
---
2+
name: osmani-build
3+
description: >
4+
Product-build lifecycle gate over the addy-agent-skills plugin (addyosmani/agent-skills — 24 phase
5+
skills: define → plan → build → verify → review → ship). Fires on PRODUCT build-intent: Nate starts
6+
building out a real tool, app, webapp, CLI, MCP server, API, bot, or skill — NOT creative ideation,
7+
content work, one-off scripts, or vault notes. On build-intent, OFFER one line (combined with the
8+
/recon offer) — do NOT auto-run. Greenfield → enter at Define. Build already started → NEVER
9+
retroactive Define/Plan; enter at the current phase, usually Verify → Review → Ship. Invoke directly
10+
as /osmani-build [define|plan|build|verify|review|ship] to skip the offer and jump to a phase.
11+
Triggers: "build / building out / start building / let's build / make a real / scaffold / MVP"
12+
plus a product noun.
13+
user_invocable: true
14+
allowed-tools: Skill, Bash, Read, Grep, Task, Agent
15+
---
16+
17+
# osmani-build — phase-gated product builds
18+
19+
Thin orchestrator. The addy plugin skills do the actual work; this skill decides WHICH of the 24
20+
fire, in what order, with Nate's house rules overriding addy's defaults. Born 2026-07-02, same day
21+
the plugin landed (`reference_addy_agent_skills_plugin.md`).
22+
23+
## When this fires — OFFER, never auto-run
24+
25+
On product build-intent, ask ONE line combined with the /recon offer, then wait:
26+
27+
> Real build — want `/recon` (prior art), `/osmani-build` (define→ship lifecycle), both, or neither?
28+
29+
- Product build-intent = starting to build out a tool / app / webapp / CLI / MCP server / API / bot /
30+
skill intended for real use.
31+
- NOT build-intent: creative ideation, content/copy work, one-off scripts, vault/note work, small
32+
refactors. (A refactor heading toward a ship can still get `/osmani-build verify` — offer only when
33+
Nate signals shipping intent.)
34+
- Explicit `/osmani-build` invocation skips the offer.
35+
- "Neither" is always a fine answer. The offer is the contract; the run is optional.
36+
37+
## Entry assessment
38+
39+
First move: figure out where the project IS. Look, don't guess — check the dir/repo.
40+
41+
| State | Signal | Entry phase |
42+
|---|---|---|
43+
| Greenfield | no repo, empty dir, idea only | Define |
44+
| Speced | spec/PRODUCT.md exists, little code | Plan |
45+
| Mid-build | working code exists | Build or Verify — ask one line |
46+
| Built | feature-complete, unshipped | Verify → Review → Ship |
47+
48+
HARD RULE (Nate, 2026-07-02): if building already started, NEVER walk backwards into Define/Plan
49+
retroactively. Pick up at the current phase and move forward only.
50+
51+
## Phase map
52+
53+
Run phases in order from the entry point. Within a phase, invoke only the applicable skills via
54+
`Skill({skill: "agent-skills:<name>"})`.
55+
56+
| Phase | Plugin skills | Applicability notes |
57+
|---|---|---|
58+
| Define | interview-me → idea-refine → spec-driven-development | greenfield only; skip any step whose output already exists |
59+
| Plan | planning-and-task-breakdown | tracked tasks → /maketasks (HARD RULE), never raw 05-Tasks writes |
60+
| Build | incremental-implementation (always) · test-driven-development (matches house TDD-London preference) · context-engineering · source-driven-development · doubt-driven-development | frontend-ui-engineering only for UI · api-and-interface-design only for APIs |
61+
| Verify | browser-testing-with-devtools (web surfaces) · debugging-and-error-recovery (on failures) | plus native /verify when the diff has a runtime surface |
62+
| Review | code-review-and-quality · code-simplification · security-and-hardening · performance-optimization | native /code-review, /simplify, /security-review are substitutes — prefer addy's inside the full lifecycle |
63+
| Ship | git-workflow-and-versioning · ci-cd-and-automation · shipping-and-launch · observability-and-instrumentation | documentation-and-adrs ONLY on explicit ask · deprecation-and-migration only when replacing a live thing |
64+
65+
## Phase gates
66+
67+
At each phase boundary, one line — e.g. `Define done → Plan next. Continue / skip to <phase> / stop?`
68+
Default momentum is continue; a bare "go" advances. Never re-litigate a completed phase.
69+
70+
## House overrides (bind over addy defaults)
71+
72+
- **No PRs** on lorecraft-io/fidgetcoding repos — direct push to main (`feedback_no_prs`). Ignore any
73+
PR-flow steps inside git-workflow-and-versioning.
74+
- **Never** `Co-Authored-By: claude-flow <ruv@ruv.net>` or any ruv* coauthor on commits.
75+
- **No proactive docs/READMEs.** documentation-and-adrs runs only on explicit ask; READMEs follow
76+
`feedback_readme_style` (personal voice, no dev-jargon jokes).
77+
- **ADRs route through /save branch 4**`Claude-Memory/adr/ADR-<nnn>-<slug>.md`, not addy's location.
78+
- **Never dark mode by default** on any scaffold (`feedback_never_dark_mode`).
79+
- **Task creation → /maketasks.** Any planning output that becomes tracked tasks goes through the
80+
skill — never direct 05-Tasks writes, never minted UUIDs.
81+
- **/recon stays separate** — this skill never runs the landscape sweep itself.
82+
83+
## Invocation mechanics
84+
85+
1. Primary: `Skill({skill: "agent-skills:<name>"})`.
86+
2. Plugin skills not loaded this session (pre-restart)? Read the source directly and follow it inline:
87+
`ls ~/.claude/plugins/cache/addy-agent-skills/agent-skills/*/skills/<name>/SKILL.md`
88+
(version dir changes on plugin update — always glob, never hardcode).
89+
3. Plugin missing entirely? Reinstall with the SSH→HTTPS workaround in
90+
`reference_addy_agent_skills_plugin.md`, then continue.
91+
92+
## Non-goals
93+
94+
- No prior-art sweep (that's /recon).
95+
- No session capture (that's /save).
96+
- No creative/content pipelines — products only.

step-7/step-7-install.sh

Lines changed: 67 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22
set -uo pipefail
33

44
# =============================================================================
5-
# Step 7 — GitHub CLI + MCP + /gitfix + /recon
5+
# Step 7 — GitHub CLI + MCP + /gitfix + /recon + /osmani-build
66
# Installs the `gh` CLI (terminal binary), the GitHub MCP server, and the
7-
# /gitfix + /recon skills. `gh` installs unconditionally (no credentials
8-
# needed) and is what /recon uses to sweep GitHub for prior art; the
9-
# MCP install is gated on a Personal Access Token.
7+
# /gitfix + /recon + /osmani-build skills. `gh` installs unconditionally (no
8+
# credentials needed) and is what /recon uses to sweep GitHub for prior art;
9+
# the MCP install is gated on a Personal Access Token. /osmani-build also
10+
# pulls in the addyosmani/agent-skills plugin (best-effort).
1011
# Run after completing Steps 1-6. Run this in your terminal.
1112
# =============================================================================
1213

@@ -169,9 +170,10 @@ choose_tools() {
169170
echo ""
170171
echo " bash <(curl -fsSL https://raw.githubusercontent.com/fidgetcoding/cli-maxxing/main/step-7/step-7-install.sh)"
171172
echo ""
172-
info "Continuing with non-interactive /gitfix + /recon install..."
173+
info "Continuing with non-interactive /gitfix + /recon + /osmani-build install..."
173174
install_gitfix
174175
install_recon
176+
install_osmani_build
175177
run_self_test
176178
print_summary
177179
exit 0
@@ -337,6 +339,64 @@ install_recon() {
337339
fi
338340
}
339341

342+
# -----------------------------------------------------------------------------
343+
# Install /osmani-build skill — phase-gated product-build lifecycle.
344+
# Orchestrates the addyosmani/agent-skills plugin (installed best-effort below).
345+
# -----------------------------------------------------------------------------
346+
install_osmani_build() {
347+
OSMANI_DIR="$HOME/.claude/skills/osmani-build"
348+
OSMANI_FILE="$OSMANI_DIR/SKILL.md"
349+
OSMANI_URL="https://raw.githubusercontent.com/fidgetcoding/cli-maxxing/main/osmani-build-skill/SKILL.md"
350+
351+
mkdir -p "$OSMANI_DIR"
352+
353+
if [ -f "$OSMANI_FILE" ]; then
354+
info "Updating existing /osmani-build skill..."
355+
else
356+
info "Installing /osmani-build skill..."
357+
fi
358+
359+
OSMANI_TMP="$OSMANI_FILE.tmp"
360+
if curl -fsSL "$OSMANI_URL" -o "$OSMANI_TMP" 2>/dev/null && [ -s "$OSMANI_TMP" ]; then
361+
mv "$OSMANI_TMP" "$OSMANI_FILE"
362+
success "/osmani-build skill installed at $OSMANI_FILE"
363+
else
364+
rm -f "$OSMANI_TMP"
365+
warn "Download failed — attempting local fallback..."
366+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
367+
LOCAL_OSMANI="$(dirname "$SCRIPT_DIR")/osmani-build-skill/SKILL.md"
368+
if [ -f "$LOCAL_OSMANI" ]; then
369+
cp "$LOCAL_OSMANI" "$OSMANI_FILE"
370+
success "/osmani-build skill installed from local copy"
371+
else
372+
soft_fail "Could not install /osmani-build skill — download and local fallback both failed"
373+
return
374+
fi
375+
fi
376+
377+
# Best-effort dependency: the addyosmani/agent-skills plugin (24 lifecycle skills).
378+
# HTTPS marketplace URL + per-invocation SSH→HTTPS rewrite so machines without
379+
# a GitHub SSH key still succeed.
380+
if command -v claude >/dev/null 2>&1; then
381+
if claude plugin list 2>/dev/null | grep -q "agent-skills@addy-agent-skills"; then
382+
success "addy-agent-skills plugin already installed"
383+
else
384+
info "Installing addyosmani/agent-skills plugin (dependency of /osmani-build)..."
385+
claude plugin marketplace add https://github.com/addyosmani/agent-skills.git >/dev/null 2>&1 || true
386+
if GIT_CONFIG_COUNT=1 GIT_CONFIG_KEY_0="url.https://github.com/.insteadOf" GIT_CONFIG_VALUE_0="git@github.com:" \
387+
claude plugin install agent-skills@addy-agent-skills >/dev/null 2>&1; then
388+
success "addy-agent-skills plugin installed (24 lifecycle skills)"
389+
else
390+
warn "/osmani-build installed, but the agent-skills plugin didn't — run manually:"
391+
warn " claude plugin marketplace add https://github.com/addyosmani/agent-skills.git"
392+
warn " claude plugin install agent-skills@addy-agent-skills"
393+
fi
394+
fi
395+
else
396+
warn "claude CLI not on PATH — install the agent-skills plugin later so /osmani-build has its 24 phase skills"
397+
fi
398+
}
399+
340400
# -----------------------------------------------------------------------------
341401
# Self-test — check each installed tool is registered
342402
# -----------------------------------------------------------------------------
@@ -483,9 +543,10 @@ main() {
483543
esac
484544
done
485545

486-
# /gitfix and /recon always install (no interactive input required)
546+
# /gitfix, /recon, and /osmani-build always install (no interactive input required)
487547
install_gitfix
488548
install_recon
549+
install_osmani_build
489550

490551
run_self_test
491552
print_summary

0 commit comments

Comments
 (0)