From marvin
Prepare a project for development — create directories, configs, install dependencies. Never creates source or test files. Standalone or pipeline-aware via $ARCH_PATH. Triggers: scaffold, setup project, prepare project, init project, create structure.
npx claudepluginhub ondrej-svec/heart-of-gold-toolkit --plugin marvinThis skill is limited to using the following tools:
Prepare a project for development. Creates directories, configs, and installs dependencies — **never source or test files.**
Use when launching a new project, initializing a repository, or building a codebase from the ground up - addresses directory structure, tooling configuration, linting, testing infrastructure, CI/CD pipelines, and version control setup
Scans codebase for package managers, tests, CI/CD, deployment, and docs; infers configs with confidence scores; asks only unknowns; generates SDLC files like README and ARCHITECTURE.md. For initial setup.
Installs AI Software Architect framework in new projects: locates source, analyzes tech stack, scaffolds .architecture/ dir with customized templates, members, principles, and initial system analysis.
Share bugs, ideas, or general feedback.
Prepare a project for development. Creates directories, configs, and installs dependencies — never source or test files.
This skill MAY: create directories, config files, install dependencies, set up tooling. This skill MAY NOT: create source files (*.ts, *.js, *.py, etc.), create test files, write implementation code, write test code.
NEVER create source or test files. Structure and configuration only.
| Shortcut | Why It Fails | The Cost |
|---|---|---|
| "Create a starter file — just a skeleton" | Skeletons become the implementation. Test writers then test the skeleton, not real behavior | Weak tests that pass with stubs |
| "Skip dependency install — implementer can do it" | Missing deps cause confusing errors downstream | Wasted time debugging missing imports |
| "Use default configs — they'll customize later" | Default configs often conflict with project conventions | Config drift → inconsistent behavior |
If $ARCH_PATH is set (pipeline mode):
$ARCH_PATHIf no env var (standalone mode):
Exit: Know what directories, dependencies, and configs are needed.
Determine if this is greenfield or brownfield:
# Check for existing project indicators
ls package.json pyproject.toml Cargo.toml go.mod 2>/dev/null
ls -d src/ lib/ app/ 2>/dev/null
Announce: "Project state: [greenfield/brownfield]. [Details]."
Exit: Project state assessed.
Only if greenfield. For brownfield, skip to Step 4.
Create timestamp marker for Stop hook:
touch /tmp/scaffold-start
Create directories from the architecture doc's File Structure section:
mkdir -p src/services src/models tests/
Create package manifest (package.json, pyproject.toml, etc.):
Install dependencies:
npm install # or pip install, cargo build, etc.
Set up tooling configs — ONLY if the project doesn't already have them:
Exit: Project structure created, dependencies installed, tooling configured.
Only if brownfield. For greenfield, this was handled in Step 3.
Exit: Project structure verified and aligned with architecture doc.
Write a context file for downstream consumers (test writers, implementers):
Output path: {stories_path}/{slug}.context.md (or docs/stories/{slug}.context.md if no override)
# Context: {Feature Title}
## Project State
- Type: greenfield | brownfield
- Language: {language}
- Framework: {framework}
- Test framework: {test framework}
## Installed Dependencies
- {package}: {version} — {purpose}
## Directory Structure
- {path/}: {purpose}
## Config Notes
- {Any non-obvious config decisions}
## Commands
- Test: {test command}
- Lint: {lint command}
- Build: {build command}
Exit: Context file written. Scaffold complete.
Before completing, verify: