بنقرة واحدة
bootstrap-project
Initializes the Claude Code configuration in a new or existing project using the dotforge template.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Initializes the Claude Code configuration in a new or existing project using the dotforge template.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Audits the Claude Code configuration of a project against the dotforge template. Generates a report with score and gaps.
Sync all GitHub-backed git repos on this machine with origin. Pulls behind repos, pushes ahead repos, reports dirty/non-main/conflict cases for Claude to resolve.
Generate a Claude Code plugin package from the current project's dotforge configuration, ready for marketplace submission.
Fetch official Anthropic/Claude Code docs, detect changes relevant to dotforge, report deltas.
Process the practices inbox, evaluate, incorporate into dotforge, and suggest propagation to projects.
Restore a project's .claude/ directory to the dotforge template from scratch, with backup and rollback option.
| name | bootstrap-project |
| description | Initializes the Claude Code configuration in a new or existing project using the dotforge template. |
| context | fork |
Initialize a complete .claude/ in the current project using the dotforge template.
Check if $ARGUMENTS contains --profile minimal, --profile standard, or --profile full.
If not specified, use standard as default.
Profiles control what gets installed:
| Component | minimal | standard | full |
|---|---|---|---|
| CLAUDE.md | yes | yes | yes |
| settings.json | yes | yes | yes |
| block-destructive hook | yes | yes | yes |
| lint-on-save hook | no | yes | yes |
| session-report hook | no | yes | yes |
| warn-missing-test hook | no | no | yes (strict profile) |
| rules/ (_common + stack) | yes | yes | yes |
| commands/ | no | yes | yes |
| agents/ + orchestration | no | yes | yes |
| agent-memory/ | no | no | yes |
| CLAUDE_ERRORS.md | no | yes | yes (pre-populated) |
| memory.md rule | no | yes | yes |
Save the profile in .claude/settings.local.json under env.FORGE_BOOTSTRAP_PROFILE.
Use detection rules from $DOTFORGE_DIR/stacks/detect.md.
Show:
Profile: {{profile}}
Detected stack: {{stacks}}
Will create:
- CLAUDE.md (base template + stack rules)
- .claude/settings.json (base permissions + stack)
- .claude/rules/ (common rules + stack)
- .claude/hooks/ (block-destructive + lint + session-report) [minimal: block-destructive only]
- .claude/commands/ (audit, health) [minimal: skipped]
- .claude/agents/ + orchestration [minimal: skipped]
- CLAUDE_ERRORS.md (empty, for error logging) [minimal: skipped]
Proceed? (yes/no)
Adapt the list shown based on the profile (hide components that won't be installed).
Use $DOTFORGE_DIR/template/CLAUDE.md.tmpl as the base.
Replace markers:
{{PROJECT_NAME}} → name of the current directory<!-- forge:stack --> → detected technologies<!-- forge:commands --> → detected build/test commands (package.json scripts, Makefile targets, etc.)$DOTFORGE_DIR/template/settings.json.tmpl as the base$DOTFORGE_DIR/stacks/{stack}/settings.json.partialallow arrays from all partials with the base (union of sets, no duplicates)deny arrays the same way.claude/settings.jsonMulti-stack: If multiple stacks are detected (e.g.: python-fastapi + react-vite-ts + docker-deploy), merge ALL partials. Order does not matter — it is a union of sets.
Before writing settings.json, validate that the generated JSON is valid:
python3 -c 'import json; json.load(open(".claude/settings.json"))' 2>&1
Or if not yet written, validate the content in memory/string:
echo '<json_content>' | python3 -c 'import json,sys; json.load(sys.stdin)'
If validation fails, show the exact error and DO NOT write the file. Fix the JSON before continuing.
$DOTFORGE_DIR/template/hooks/block-destructive.sh → .claude/hooks/ (ALL profiles)standard or full: copy $DOTFORGE_DIR/template/hooks/lint-on-save.shstandard or full: copy $DOTFORGE_DIR/template/hooks/session-report.shstandard or full: copy $DOTFORGE_DIR/template/hooks/detect-stack-drift.shfull: copy $DOTFORGE_DIR/template/hooks/warn-missing-test.shchmod +x all copied hooks$DOTFORGE_DIR/stacks/{stack}/hooks/ exists:
.claude/hooks/{stack}/core/ directory exists alongside hooks, copy it too (e.g., hookify needs core/ + hooks/)$DOTFORGE_DIR/template/rules/_common.md → .claude/rules/$DOTFORGE_DIR/stacks/{stack}/rules/ → .claude/rules/Only if domain info was provided (via /forge init Q4 or user explicitly requests it during bootstrap).
If any detected stack has a domain: field in its rules (e.g., stacks/trading/rules/trading.md):
.claude/rules/domain/ directory.claude/rules/domain/ instead of .claude/rules/If the user provided domain description (from init Q4 context):
.claude/rules/domain/ directory if not existsglobs: (domain-specific patterns), domain: tag, last_verified: (today)jira-api.md, agile-metrics.md)If neither condition is met, skip this step entirely — no noise for projects without domain context.
Important: Domain rules in .claude/rules/domain/ are project-owned. They are NOT tracked in the forge manifest and are NOT updated by /forge sync.
Skip if profile is minimal.
Copy $DOTFORGE_DIR/template/commands/ → .claude/commands/
Skip if profile is minimal.
$DOTFORGE_DIR/agents/*.md → .claude/agents/$DOTFORGE_DIR/template/rules/agents.md → .claude/rules/agents.mdThis gives the project access to the 6 specialized subagents (researcher, architect, implementer, code-reviewer, security-auditor, test-runner) and the orchestration rule that defines when to delegate.
Skip if profile is minimal.
For full profile: pre-populate with the Type column format and example entry.
For standard profile: create empty template.
# Known errors — {{PROJECT_NAME}}
Evolving log of errors and lessons learned. Consult BEFORE working in areas with prior errors.
Truth hierarchy: source code > CLAUDE.md > CLAUDE_ERRORS.md > auto-memory
## Format
| Date | Area | Type | Error | Root cause | Fix | Derived rule |
|------|------|------|-------|------------|-----|--------------|
Valid types: `syntax`, `logic`, `integration`, `config`, `security`
Only for full profile. Standard creates the directory but not the seed files.
Create .claude/agent-memory/ directory for agents with memory: project to persist learnings:
mkdir -p .claude/agent-memory
Create a seed file for each memory-enabled agent so the directory structure is ready:
for agent in implementer architect code-reviewer security-auditor; do
touch ".claude/agent-memory/${agent}.md"
done
This enables implementer, architect, code-reviewer, and security-auditor to accumulate project-specific knowledge across sessions.
If the user does not have detect-claude-changes.sh installed in ~/.claude/settings.json, show:
Tip: For automatic practice capture, install the global hook:
Copy hooks/detect-claude-changes.sh to ~/.claude/hooks/
Add in ~/.claude/settings.json under hooks → Stop
See docs for details.
Create .claude/.forge-manifest.json with the SHA256 hash of each file created during bootstrap:
shasum -a 256 <file> | cut -d' ' -f1
Format:
{
"dotforge_version": "<version from $DOTFORGE_DIR/VERSION>",
"synced_at": "<current date YYYY-MM-DD>",
"stacks": ["<detected-stack-1>", "<detected-stack-2>"],
"files": {
".claude/settings.json": {"hash": "sha256:<hash>", "source": "template+stacks"},
".claude/rules/_common.md": {"hash": "sha256:<hash>", "source": "template"},
".claude/hooks/block-destructive.sh": {"hash": "sha256:<hash>", "source": "template"},
".claude/hooks/lint-on-save.sh": {"hash": "sha256:<hash>", "source": "template"}
}
}
source indicates where the file came from: "template", "template+stacks" (if merged from base + stacks), or "stacks/<name>"..claude/ (rules, hooks, commands, agents)..claude/).Show a summary of created files and suggest running /audit-project to verify.