agents-standards
Standards for authoring SDD plugin agents — frontmatter, self-containment, skill references, and no-user-interaction rules.
Scaffolds project-level structure (root files, specs).
$ npx -y skills add LiorCohen/sdd --skill project-scaffolding --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/project-scaffoldingContext preview
The summary Claude sees to decide when to auto-load this skill.
Scaffolds project-level structure (root files, specs).
name: project-scaffolding description: Scaffolds project-level structure (root files, specs). user-invocable: false
Creates the non-component parts of an SDD project: root files and specs directory.
Creates only the essential structure needed to start. Additional components are scaffolded during implementation when the plan includes a scaffolding phase.
mode: minimal project_name: my-app target_dir: /path/to/project
**Creates:**
project/ ├── sdd/ │ └── sdd-settings.yaml # Minimal settings ├── specs/ │ └── INDEX.md # Empty spec registry ├── package.json # Root project (from tech pack template) ├── README.md ├── CLAUDE.md └── .gitignore
**NOT created in minimal mode:**
Creates the complete structure. Used when upgrading or explicitly requested.
mode: full project_name: my-app project_description: My application primary_domain: Task Management target_dir: /path/to/project
**Creates:**
project/ ├── sdd/ │ └── sdd-settings.yaml ├── specs/ │ ├── INDEX.md │ ├── SNAPSHOT.md │ └── domain/ │ ├── glossary.md │ ├── definitions/ │ └── use-cases/ ├── changes/ │ └── INDEX.md ├── README.md ├── CLAUDE.md ├── package.json └── .gitignore
This skill NEVER overwrites existing files:
This makes it safe to run multiple times for repair/upgrade scenarios.
Use during:
| Variable | Description | |----------|-------------| | `{{PROJECT_NAME}}` | Project name (lowercase, hyphens) | | `{{PROJECT_DESCRIPTION}}` | Brief project description | | `{{PRIMARY_DOMAIN}}` | Primary business domain | | `{{PLUGIN_VERSION}}` | SDD plugin version | | `{{CURRENT_DATE}}` | Current date (YYYY-MM-DD) |
Use the minimal template defined in the `project-settings` skill (see its "Minimal Template" section). That skill is the authoritative source for the sdd-settings.yaml schema and template format.
# Specifications Index This file tracks all specifications in the project. ## Changes No changes yet. Create your first change with:
/sdd I want to create a new feature
## Domain Knowledge Domain knowledge (glossary, personas, use cases) is populated when you create changes.
Schema: [`schemas/input.schema.json`](./schemas/input.schema.json)
Accepts scaffolding mode, project name, target directory, and optional description and domain.
Schema: [`schemas/output.schema.json`](./schemas/output.schema.json)
Returns success status and list of created files.
Templates are in this skill's `templates/` directory:
skills/project-scaffolding/templates/
├── project/
│ ├── package.json # Root project package.json
│ ├── README.md
│ └── CLAUDE.md
├── specs/
│ ├── SNAPSHOT.md
│ └── glossary.md
└── changes/
└── INDEX.md**CRITICAL: The `sdd/` directory MUST be version controlled.**
The generated `.gitignore` should:
# Dependencies node_modules/ # Build outputs dist/ build/ *.tsbuildinfo # IDE .idea/ .vscode/ *.swp # OS .DS_Store Thumbs.db # Environment .env .env.local .env.*.local # Logs *.log logs/ # Test coverage coverage/ # IMPORTANT: sdd/ is NOT ignored - it contains version-controlled SDD artifacts # Do NOT add sdd/ to this file
When running in repair/upgrade mode, check existing `.gitignore`: 1. If `.sdd` or `sdd/` pattern exists, remove it 2. If `specs/` pattern exists, remove it 3. If `changes/` pattern exists, remove it 4. Log warning: "Removed .sdd from .gitignore - SDD artifacts must be version controlled"
Project scaffolding uses the scaffolding engine internally. The `scaffolding project` command builds a spec from the project config and calls `executeSpec`. You do not need to invoke `scaffolding apply` separately for project-level files — the CLI handles it.
The project scaffolding CLI:
1. Translates `ScaffoldingConfig` into a `ScaffoldSpec` 2. Maps each component to `template_dir` operations (using colocated templates in each component skill) 3. Generates inline content (`.gitignore`, `.claudeignore`, architecture overview) as `write_file` operations 4. Computes per-component scripts and adds `package_json_scripts` operations 5. Executes the full spec via the engine
{
"target_dir": "<project-root>",
"base_dir": "<plugin-root>/skills",
"variables": {
"PROJECT_NAME": "my-app",
"PROJECT_DESCRIPTION": "My application",
"PRIMARY_DOMAIN": "Task Management"
},
"operations": [
{
"type": "template_dir",
"source": "project-scaffolding/templates/project",
"dest": "."
},
{
"type": "write_file",
"path": ".gitignore",
"content": "<computed-content>",
"if_exists": "skip"
}
]
}Component scaffolding skills are provided by the active tech pack. Invoke `techpacks.routeSkills(phase: project-scaffolding)` to load the tech-specific scaffolding orchestration skill. For each component type, the manifest's `components.<type>.scaffolding` field points to the
Structure for AI-assisted development AI coding assistants are powerful but chaotic. You prompt, you get code, but then what?
Repo: LiorCohen/sdd
Standards for authoring SDD plugin agents — frontmatter, self-containment, skill references, and no-user-interaction rules.
Standards for authoring SDD plugin commands — frontmatter, user interaction, skill/agent invocation, CLI integration, and output formatting.
Create a commit following repository guidelines with proper versioning and changelog updates.
Two-step self-review at every task lifecycle phase. Step 1 (this skill) runs in-context to gather session signals — files read vs grepped, user pushback, build…
D2 diagramming language reference for architecture diagrams, sequence diagrams, grid layouts, SQL tables, and class diagrams. Produces .d2 files rendered via…
Writes and maintains user-facing documentation for the SDD plugin. Proactively detects when docs are out of sync with plugin capabilities.