From smith
Executes implementation plans by processing and executing tasks from tasks.md, with vault logging, git branch workflow tracking, prerequisite checks, and checklist status reporting.
npx claudepluginhub attckdigital/smithThis skill uses the workspace's default tool permissions.
Throughout this action, log significant events to the vault session log. Read the session log path from `.smith/vault/.current-session`. If the file is missing or the vault is not initialized, skip all logging silently.
Executes implementation plans from tasks.md and design.md by processing tasks in stages with dependencies, TDD, batch clears for context management, and final reports.
Executes implementation plan by processing tasks.md phase-by-phase in TDD order, respecting dependencies and parallel markers, setting up ignore files, and marking completed tasks. Use to start or resume coding.
Executes approved implementation plans strictly with checkpoint verification, progress tracking, stakes-based enforcement, and optional git worktree isolation.
Share bugs, ideas, or general feedback.
Throughout this action, log significant events to the vault session log. Read the session log path from .smith/vault/.current-session. If the file is missing or the vault is not initialized, skip all logging silently.
Append entries using this format:
### [HH:MM:SS] /smith-implement <event>
**User Request:**
> <verbatim user message that triggered this action>
**Synthesized Input:** <brief summary>
**Outcome:** <what happened>
**Artifacts:** <files created/modified>
**Systems affected:** <system IDs>
Log at these points:
$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
At the start of implementation, create a per-branch active-workflow file only if it doesn't already exist (it may already be set by /smith-new or /smith-build):
BRANCH=$(git rev-parse --abbrev-ref HEAD)
SAFE_BRANCH=$(echo "$BRANCH" | sed 's/[^a-zA-Z0-9._-]/-/g')
ACTIVE_FILE=".smith/vault/active-workflows/${SAFE_BRANCH}.yaml"
# Only create if not already set by parent workflow
if [ ! -f "$ACTIVE_FILE" ]; then
mkdir -p .smith/vault/active-workflows
cat > "$ACTIVE_FILE" << EOF
workflow: smith-implement
feature: <detected from branch or spec>
branch: $BRANCH
started: $(date -u +"%Y-%m-%dT%H:%M:%S")
EOF
fi
Clear the active-workflow file when all tasks are complete, only if smith-implement created it (not if inherited from parent). Use the shipped helper so this works on projects that deny Bash(rm:*):
# Only clean up if we created it (check workflow field)
if grep -q 'workflow: smith-implement' "$ACTIVE_FILE" 2>/dev/null; then
.specify/scripts/bash/clear-active-workflow.sh "$BRANCH"
fi
If this action was invoked by /smith-build, the build action handles cleanup instead.
Run .specify/scripts/bash/check-prerequisites.sh --json --require-tasks --include-tasks from repo root and parse FEATURE_DIR and AVAILABLE_DOCS list. All paths must be absolute. For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'''m Groot' (or double-quote if possible: "I'm Groot").
Check checklists status (if FEATURE_DIR/checklists/ exists):
Scan all checklist files in the checklists/ directory
For each checklist, count:
- [ ] or - [X] or - [x]- [X] or - [x]- [ ]Create a status table:
| Checklist | Total | Completed | Incomplete | Status |
|-----------|-------|-----------|------------|--------|
| ux.md | 12 | 12 | 0 | PASS |
| test.md | 8 | 5 | 3 | FAIL |
| security.md | 6 | 6 | 0 | PASS |
Calculate overall status:
If any checklist is incomplete:
If all checklists are complete:
If .smith/vault/ledger/ exists and contains non-empty files, load relevant Ledger sections to inform implementation. If the directory is missing, empty, or unreadable, skip silently — the Ledger is purely additive and never required.
Check: ls .smith/vault/ledger/*.md 2>/dev/null
If files exist, read the following section (higher-confidence entries first, truncate at ~2000 tokens):
.smith/vault/ledger/tool-preferences.mdUse loaded tool preferences as additional context when choosing implementation approaches. The Ledger informs judgment, it does not override spec/plan/constitution.
Budget violation tracking: If any Ledger file was truncated (entries were dropped to fit within the ~2000 token budget per file), increment context_budget_violations in .smith/vault/ledger/.meta.json by 1. If .meta.json does not exist, create it from the default template first. This signal tells the reconciliation system that the Ledger is too large for the configured budget.
Load and analyze the implementation context:
Project Setup Verification:
Detection & Creation Logic:
Check if the following command succeeds to determine if the repository is a git repo (create/verify .gitignore if so):
git rev-parse --git-dir 2>/dev/null
Check if Dockerfile* exists or Docker in plan.md → create/verify .dockerignore
Check if .eslintrc* exists → create/verify .eslintignore
Check if eslint.config.* exists → ensure the config's ignores entries cover required patterns
Check if .prettierrc* exists → create/verify .prettierignore
Check if .npmrc or package.json exists → create/verify .npmignore (if publishing)
Check if terraform files (*.tf) exist → create/verify .terraformignore
Check if .helmignore needed (helm charts present) → create/verify .helmignore
If ignore file already exists: Verify it contains essential patterns, append missing critical patterns only If ignore file missing: Create with full pattern set for detected technology
Common Patterns by Technology (from plan.md tech stack):
node_modules/, dist/, build/, *.log, .env*__pycache__/, *.pyc, .venv/, venv/, dist/, *.egg-info/target/, *.class, *.jar, .gradle/, build/bin/, obj/, *.user, *.suo, packages/*.exe, *.test, vendor/, *.out.bundle/, log/, tmp/, *.gem, vendor/bundle/vendor/, *.log, *.cache, *.envtarget/, debug/, release/, *.rs.bk, *.rlib, *.prof*, .idea/, *.log, .env*build/, out/, .gradle/, .idea/, *.class, *.jar, *.iml, *.log, .env*build/, bin/, obj/, out/, *.o, *.so, *.a, *.exe, *.dll, .idea/, *.log, .env*build/, bin/, obj/, out/, *.o, *.a, *.so, *.exe, Makefile, config.log, .idea/, *.log, .env*.build/, DerivedData/, *.swiftpm/, Packages/.Rproj.user/, .Rhistory, .RData, .Ruserdata, *.Rproj, packrat/, renv/.DS_Store, Thumbs.db, *.tmp, *.swp, .vscode/, .idea/Tool-Specific Patterns:
node_modules/, .git/, Dockerfile*, .dockerignore, *.log*, .env*, coverage/node_modules/, dist/, build/, coverage/, *.min.jsnode_modules/, dist/, build/, coverage/, package-lock.json, yarn.lock, pnpm-lock.yaml.terraform/, *.tfstate*, *.tfvars, .terraform.lock.hcl*.secret.yaml, secrets/, .kube/, kubeconfig*, *.key, *.crtParse tasks.md structure and extract:
Execute implementation following the task plan:
Implementation execution rules:
Progress tracking and error handling:
Completion validation:
Note: This command assumes a complete task breakdown exists in tasks.md. If tasks are incomplete or missing, suggest running /smith-tasks first to regenerate the task list.