brace
Initialize any project directory with a standard scaffold for AI-assisted development. Creates specs/ and context/ directories, a project CLAUDE.md with development workflow and guardrails, .gitignore, and branch protection. Recommends claude-mem for persistent memory. Idempotent — safe to run on existing projects. Triggers: "init project", "setup brace", "brace", "initialize", "bootstrap", "scaffold".
What this skill does
# Brace - Project Scaffold
When this skill is invoked, IMMEDIATELY output the banner below before doing anything else.
Pick ONE tagline at random — vary your choice each time.
CRITICAL: Reproduce the banner EXACTLY character-for-character. The first line of the art has 4 leading spaces — you MUST preserve them.
```
{tagline}
⠀ ██╗██████╗ ██████╗ █████╗ ██████╗███████╗
██╔╝██╔══██╗██╔══██╗██╔══██╗██╔════╝██╔════╝
██╔╝ ██████╔╝██████╔╝███████║██║ █████╗
██╔╝ ██╔══██╗██╔══██╗██╔══██║██║ ██╔══╝
██╔╝ ██████╔╝██║ ██║██║ ██║╚██████╗███████╗
╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚══════╝
```
Taglines:
- 🏗️ Bracing the structure...
- 💪 Reinforcing before load!
- 🔒 Locking in the framework!
- 🏋️ Preparing for heavy lifting!
- 🧱 Cross-bracing the foundation!
- 🔧 Tightening the load path!
- ✅ Structural integrity confirmed!
- 💥 Brace for impact!
---
## Output Formatting
After the banner, display parsed input:
```
┌─ Input ────────────────────────────────────────
│ {Field}: {value}
│ Flags: {parsed flags or "none"}
└────────────────────────────────────────────────
```
Pre-flight results:
```
── Pre-flight ───────────────────────────────────
✅ {dep} {version or "found"}
⚠️ {dep} not found → {fallback detail}
❌ {dep} missing → stopping
──────────────────────────────────────────────────
```
Stage/phase headers: `━━ {N} · {Name} ━━━━━━━━━━━━━━━━━━━━━━━━━`
Status icons: ✅ done · ❌ failed · ⚠️ degraded · ⏳ working · ⏭️ skipped
---
Initialize any project directory with a standard scaffold for AI-assisted
development. Idempotent — safe to re-run on existing projects. Content
templates and subagent prompts are in `references/`.
**Key principle:** Scan first, present plan, get approval, then act.
Phase prompts: `references/phase-prompts.md`
Scaffold manifest: `references/scaffold-manifest.md`
Report format: `references/report-template.md`
---
## Flags
Parse optional flags from the request:
- `--force` — Overwrite existing files without prompting
- `--skip-plugin-tuning` — Skip Phase 7 plugin performance tuning
---
## Pre-flight
Before starting, check all dependencies in this table:
| Dependency | Type | Check | Required | Resolution | Detail |
|-----------|------|-------|----------|------------|--------|
| claude-mem | plugin | — | no | ask | `claude plugin install claude-mem` |
| oh-my-claudecode | plugin | — | no | ask | `claude plugin install oh-my-claudecode` |
For each row, in order:
1. Run the Check command (for cli/npm) or test file existence (for agent/skill)
2. If found: continue silently
3. If missing: apply Resolution strategy
- **stop**: notify user with Detail, halt execution
- **url**: notify user with Detail (install link), halt execution
- **install**: notify user, run the command in Detail, continue if successful
- **ask**: notify user, offer to run command in Detail, continue either way (or halt if required)
- **fallback**: notify user with Detail, continue with degraded behavior
4. After all checks: summarize what's available and what's degraded
**Plugin detection:** For plugin dependencies (Type = plugin), check
`~/.claude/settings.json` → `enabledPlugins` for a key containing the plugin
name set to `true`. Store results as `PLUGIN_STATE` (`claude_mem_installed`,
`omc_installed`) for use in Phase 4 and Phase 7.
1. Capture **FLAGS** from the user's request
---
## Phase 1: Directory Scan
Launch **Bash** subagent (**haiku**):
```
Task(
subagent_type: "Bash",
model: "haiku",
description: "Scan directory for existing scaffold structure",
prompt: <read from references/phase-prompts.md#phase-1>
)
```
Parse SCAN_REPORT. Extract:
- `directory_name` (used as default project name)
- `existing_dirs` / `missing_dirs`
- `existing_files` / `missing_files`
- `has_claude_md` / `has_gitignore`
- `has_atlas` (legacy ATLAS naming detected)
- `has_forge` (legacy FORGE naming detected)
- `has_legacy_gotcha` (legacy GOTCHA/goals structure detected)
- `has_legacy_memory` (old tools/memory system detected)
---
## Phase 1b: Legacy Upgrade Detection
**Skip if none of `has_atlas`, `has_forge`, `has_legacy_gotcha`, or `has_legacy_memory` is true.**
Build a description of what was found:
- If `has_atlas` or `has_forge`: "Legacy ATLAS/FORGE naming detected"
- If `has_legacy_gotcha`: "Legacy GOTCHA/BRACE framework detected (goals/ directory)"
- If `has_legacy_memory`: "Legacy memory system (tools/memory/, memory/) detected"
Ask the user via AskUserQuestion:
Question: "Legacy components detected: {description}. Upgrade and clean up?"
Options:
- "Yes, upgrade all" — Replace legacy structure and remove old systems
- "No, leave as-is" — Keep existing structure
Store result as `upgrade_legacy: true|false` in USER_CONFIG.
---
## Phase 2: Project Inquiry
**Runs on primary thread** (user interaction required).
1. Derive default project name from SCAN_REPORT `directory_name`
2. Present via AskUserQuestion:
Question: "Set up project scaffold?"
Options:
- "Full scaffold (Recommended)" — CLAUDE.md, directories, guardrails
- "Cancel"
3. If not cancelled, ask for project description (one sentence) via
AskUserQuestion with free text.
4. Ask installation level via AskUserQuestion:
Question: "Install universal guidance (preferences, principles) at user level?"
Options:
- "Yes, install globally (Recommended)" — applies to all projects via `~/.claude/CLAUDE.md`
- "No, project level only" — self-contained in this project's CLAUDE.md
5. Store as USER_CONFIG:
- project_name: from directory name or user override
- description: from user input
- install_level: "global" | "project"
**If cancelled, stop here.**
---
## Phase 3: Present Plan & Approve
Build the ACTION_PLAN from SCAN_REPORT + USER_CONFIG + FLAGS.
For each item in `references/scaffold-manifest.md`:
- If component not selected in USER_CONFIG → status: "not selected"
- If item already exists (from SCAN_REPORT) and no `--force` → status: "skip"
- If item exists and `--force` → status: "overwrite"
- If CLAUDE.md exists → status: "merge" (append scaffold sections)
- If .gitignore exists → status: "merge" (append missing entries)
- Otherwise → status: "create"
If `upgrade_legacy` is true in USER_CONFIG, set status "upgrade" for:
- CLAUDE.md (replaces "merge" or "skip" — upgrade takes priority)
If `upgrade_legacy` is true AND `has_legacy_gotcha` is true, additionally:
- `goals/` → status: "remove" (only if contains only manifest.md and build_app.md)
If `upgrade_legacy` is true AND `has_legacy_memory` is true, additionally:
- `tools/memory/` → status: "remove"
- `memory/` → status: "remove"
- `tools/manifest.md` → status: "cleanup" (remove memory tool rows)
- `.gitignore` → status: "cleanup" (remove memory/*.npy entry)
Present plan summary to user via AskUserQuestion:
```
Project Scaffold for: {project_name}
Will create: {list of items with status "create"}
Will merge: {list of items with status "merge"}
Will upgrade: {list of items with status "upgrade"}
Will remove: {list of items with status "remove" — legacy cleanup}
Will clean: {list of items with status "cleanup" — remove legacy references}
Will skip: {count} existing items
Universal guidance: {install_level description}
Proceed?
```
Options: "Yes, proceed" / "Cancel"
**If cancelled, stop here.**
---
## Phase 4: Scaffold Structure
Launch **general-purpose** subagent:
```
Task(
subagent_type: "general-purpose",
description: "Create project scaffold structure",
prompt: <read from references/phase-prompts.md#phase-4>
)
```
Before sending the prompt, substitute these variables:
- `{ACTION_PLAN}` — the action plan from Phase 3
- `{PROJECT_NAME}` — from USER_CONFIG
- `{PROJECT_DESCRIPTION}` — from USER_CONFIG
- `{INSTALL_LEVEL}` — from USER_CONFIG ("global" or "project")
- `{CLAUDE_MD_TEMPLATE}` — read from `references/claude-md-template.md`
(the section between BEGIN TEMPLATE and Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.