Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
c40d11b
feat(cli): add `create` and `scaffold-cleanup` subcommands
claude Feb 18, 2026
c44a730
chore: update ai/ index.md for new scaffolds directory
claude Feb 18, 2026
66788a3
fix(scaffold): harden security and code quality from review
claude Feb 18, 2026
0f09140
feat: adopt error-causes for typed scaffold error branching
claude Feb 18, 2026
0f74eea
fix: clone entire scaffold repo instead of fetching 3 individual files
claude Feb 18, 2026
62db574
fix: two bugs in scaffold runner and create command
claude Feb 18, 2026
b35d3d9
feat: validate manifest steps, add verify-scaffold command, and docum…
claude Feb 18, 2026
b3ceabb
fix(cli): restore correct argument order for create command — type fi…
claude Feb 19, 2026
114ebbb
fix(cli): parse create args correctly for 1-arg and 2-arg forms; run …
claude Feb 19, 2026
7f1c116
fix(cli): clarify that folder is required in create command help output
claude Feb 19, 2026
c6d1889
fix: use @paralleldrive/cuid2 in task requirements for consistency (#99)
Copilot Feb 19, 2026
6d2c48c
fix(create): remediation pass 1 — pre-commit, cleanup tip, ambiguous …
claude Feb 19, 2026
5b23877
feat(install): add e2e test instruction to AGENTS.md + create CLAUDE.…
claude Feb 19, 2026
f12aca0
fix(scaffold): js-yaml direct dep, tarball download, scaffold authori…
claude Feb 19, 2026
dd1fdaf
refactor(create): factor create/verify-scaffold handlers into dedicat…
claude Feb 19, 2026
d2e7dc9
fix(create): remediation pass 2 — HTTPS enforcement, conditional clea…
claude Feb 21, 2026
eaf3d26
fix(create): remediation pass 2 batch 2 — YAML schema, CLAUDE.md read…
claude Feb 21, 2026
25d9137
fix(create): remediation pass 2 batch 3 — path traversal guard, GitHu…
claude Feb 21, 2026
4bb1ad4
fix(create): remediation pass 2 batch 4 — readline, stdin, cancellati…
claude Feb 21, 2026
abfd675
test(e2e): correct cleanup tip assertion for named scaffolds
claude Feb 21, 2026
518d614
fix(test): make ensureDir injectable in runCreate to prevent EACCES i…
claude Feb 21, 2026
de62091
docs(scaffolds): update remote scaffold example to bare GitHub repo URL
claude Feb 21, 2026
cb37e62
feat(config): add \`npx aidd set create-uri\` command and rename env var
claude Feb 21, 2026
e0a941b
refactor(config): switch set create-uri to YAML home config, add aidd…
claude Feb 21, 2026
2759902
refactor(set): remove config file machinery, set prints export statement
claude Feb 22, 2026
ccf91e2
feat(set): restore ~/.aidd/config.yml as direct config source in reso…
claude Feb 22, 2026
784fee6
docs: document ~/.aidd/config.yml, fix stale tarball URL prose, simpl…
claude Feb 22, 2026
1a0a6e6
fix(verify-scaffold): download to ~/.aidd/scaffold/ and always clean up
claude Feb 22, 2026
683d794
fix(resolveNamed): use path.relative() for containment check; fix mis…
claude Feb 22, 2026
8aa00e6
feat(scaffold-resolver): support GITHUB_TOKEN for private repos and r…
claude Feb 23, 2026
adcb4a9
style: use literal property keys for Authorization header (biome)
claude Feb 23, 2026
6182020
docs: add missing ambiguous-step validation rule to scaffold-authorin…
claude Feb 23, 2026
3edf687
docs: delete misplaced SCAFFOLD-AUTHORING.md from ai/scaffolds/
claude Feb 23, 2026
8964b3c
fix(scaffold-create): detect URI-only single arg and return null for …
claude Feb 23, 2026
57e5f5b
chore(epic): add missing requirement for URI-only single-arg detection
claude Feb 23, 2026
fb0347c
feat(skills): add aidd-fix skill and /fix command
claude Feb 24, 2026
5aff408
chore: update ai/index.md to include skills/ subdirectory
claude Feb 24, 2026
d386621
feat(skills): make aidd-fix discoverable for Cursor and Claude Code
claude Feb 24, 2026
8c469c0
feat(cli): add --claude flag and extract lib/symlinks.js
claude Feb 24, 2026
f355dc3
fix(index-generator,skills): clean up skill metadata and index output
claude Feb 24, 2026
6d40ff4
docs(activity-log): remove http:// from resolver protocol list; note …
cursoragent Mar 3, 2026
764a30b
docs(epic): add env var cleanup requirement to scaffold resolver section
cursoragent Mar 3, 2026
0812500
fix(scaffold-resolver): prevent env var pollution when AIDD_CUSTOM_CR…
cursoragent Mar 3, 2026
fe44a5c
docs(epic): remove http:// from AIDD_CUSTOM_CREATE_URI supported schemes
cursoragent Mar 3, 2026
13c43cc
docs(epic): add requirement — no directory created if resolution fails
cursoragent Mar 3, 2026
31e425a
fix(scaffold-create): defer ensureDir until after resolveExtension su…
cursoragent Mar 3, 2026
690ce89
test(package): add failing test for engines.node field
cursoragent Mar 3, 2026
0eaf5ad
fix(scaffold-verifier): include manifestPath in missing manifest error
cursoragent Mar 3, 2026
c296660
fix(scaffold-create): include http:// in URI-only single-arg detection
cursoragent Mar 3, 2026
a092d24
fix(scaffold-create): quote folder paths with spaces in cleanup tip
cursoragent Mar 3, 2026
8e91354
docs(epic): document CLAUDE.md stability requirement for repeated ins…
cursoragent Mar 3, 2026
0c93a47
fix(agents-md): use hasAllDirectives to detect first-install CLAUDE.md
cursoragent Mar 3, 2026
8b3eded
fix(scaffold-runner): validate run/prompt values are strings in parse…
cursoragent Mar 3, 2026
4180d4d
chore: update package-lock.json
cursoragent Mar 3, 2026
f4bbff3
chore(merge): merge main into PR branch, resolve conflicts
cursoragent Mar 3, 2026
4e33260
chore: update auto-generated index.md files after merge
cursoragent Mar 3, 2026
14100a3
fix(claude-md): sync committed CLAUDE.md with current agentsMdContent…
cursoragent Mar 3, 2026
ec65c6e
fix(please.mdc): remove duplicate /aidd-fix entry from Commands block
cursoragent Mar 3, 2026
869a69d
docs(claude-symlink-epic): add cause.name dispatch requirements
cursoragent Mar 3, 2026
8401c03
test(symlinks): add failing tests for cause.name dispatch on Validati…
cursoragent Mar 3, 2026
6de068c
fix(symlinks): add name property to ValidationError and FileSystemErr…
cursoragent Mar 3, 2026
bacf2f0
docs(epic): add pre-commit sync requirement for AGENTS.md and CLAUDE.md
cursoragent Mar 3, 2026
58ed3d1
fix(pre-commit): sync AGENTS.md and CLAUDE.md with agentsMdContent on…
cursoragent Mar 3, 2026
003c78d
fix(aidd-config): restrict YAML parsing to JSON_SCHEMA in readConfig
cursoragent Mar 3, 2026
eff8a23
fix(scaffold-verifier): include manifestPath in not-found error message
cursoragent Mar 3, 2026
df4b5b3
refactor: remove bin/extension.js as a first-class scaffold concept
cursoragent Mar 4, 2026
99f674a
docs(scaffold-example): add release-it to README dependency list and …
cursoragent Mar 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
# Generate index.md files for ai/ and aidd-custom/ folders
# Generate index.md files for ai/ and aidd-custom/ folders, and sync AGENTS.md / CLAUDE.md
node bin/aidd.js --index "$(git rev-parse --show-toplevel)"

# Stage any updated index.md files
git add 'ai/**/index.md' 'aidd-custom/**/index.md' 2>/dev/null || true
# Stage any updated index.md files and synced agent files
git add 'ai/**/index.md' 'aidd-custom/**/index.md' AGENTS.md CLAUDE.md 2>/dev/null || true

# Generate ToC for README.md
npm run toc

# Stage updated README.md if ToC was regenerated
git add README.md 2>/dev/null || true

# E2E tests are intentionally excluded here — they run real npm installs and
# can take up to 180 s, which exceeds the release pipeline's hook timeout.
# AI agents should run `npm run test:e2e` manually before committing.
npm run test:unit
12 changes: 12 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,15 @@ and read `aidd-custom/config.yml` to load configuration into context.
## Task Index

fix bug => /aidd-fix

## Testing

The pre-commit hook runs unit tests only (`npm run test:unit`). E2E tests are excluded because they perform real installs and can take several minutes.

**Before committing**, always run the full suite manually:

```sh
npm run test:e2e
```

This ensures integration behaviour is verified without blocking the commit hook or timing out the release pipeline.
65 changes: 65 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# AI Agent Guidelines

This project uses AI-assisted development with structured guidance in the `ai/` directory.

## Directory Structure

Agents should examine the `ai/*` directory listings to understand the available commands, rules, and workflows.

## Index Files

Each folder in the `ai/` directory contains an `index.md` file that describes the purpose and contents of that folder. Agents can read these index files to learn the function of files in each folder without needing to read every file.

**Important:** The `ai/**/index.md` files are auto-generated from frontmatter. Do not create or edit these files manually—they will be overwritten by the pre-commit hook.

## Progressive Discovery

Agents should only consume the root index until they need subfolder contents. For example:
- If the project is Python, there is no need to read JavaScript-specific folders
- If working on backend logic, frontend UI folders can be skipped
- Only drill into subfolders when the task requires that specific domain knowledge

This approach minimizes context consumption and keeps agent responses focused.

## Vision Document Requirement

**Before creating or running any task, agents must first read the vision document (`vision.md`) in the project root.**

The vision document serves as the source of truth for:
- Project goals and objectives
- Key constraints and non-negotiables
- Architectural decisions and rationale
- User experience principles
- Success criteria

## Conflict Resolution

If any conflicts are detected between a requested task and the vision document, agents must:

1. Stop and identify the specific conflict
2. Explain how the task conflicts with the stated vision
3. Ask the user to clarify how to resolve the conflict before proceeding

Never proceed with a task that contradicts the vision without explicit user approval.

## Custom Skills and Configuration

Project-specific customization lives in `aidd-custom/`. Before starting work,
read `aidd-custom/index.md` to discover available project-specific skills,
and read `aidd-custom/config.yml` to load configuration into context.

## Task Index

fix bug => /aidd-fix

## Testing
Comment thread
cursor[bot] marked this conversation as resolved.

The pre-commit hook runs unit tests only (`npm run test:unit`). E2E tests are excluded because they perform real installs and can take several minutes.

**Before committing**, always run the full suite manually:

```sh
npm run test:e2e
```

This ensures integration behaviour is verified without blocking the commit hook or timing out the release pipeline.
75 changes: 75 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ Includes:
- [Installation & Usage](#installation--usage)
- [Command Options](#command-options)
- [Examples](#examples)
- [`npx aidd create` — Scaffold a new project](#npx-aidd-create--scaffold-a-new-project)
- [⚙️ Customizing aidd Framework for your Project](#-customizing-aidd-framework-for-your-project)
- [`aidd-custom/config.yml`](#aidd-customconfigyml)
- [`aidd-custom/AGENTS.md`](#aidd-customagentsmd)
- [📁 AI System Structure](#-ai-system-structure)
- [Key Components](#key-components)
- [🎯 AI Integration](#-ai-integration)
Expand Down Expand Up @@ -418,6 +422,77 @@ npx aidd frontend-app
npx aidd backend-api
```

### `npx aidd create` — Scaffold a new project

Use the `create` subcommand to scaffold a new project from a manifest-driven scaffold extension:

```bash
npx aidd create my-project # built-in next-shadcn scaffold
npx aidd create scaffold-example my-project # named scaffold bundled in aidd
npx aidd create https://github.com/org/repo my-project # remote GitHub repo (latest release)
npx aidd create file:///path/to/scaffold my-project # local scaffold directory
```

For full documentation on authoring your own scaffolds, see [docs/scaffold-authoring.md](./docs/scaffold-authoring.md).

To avoid passing the URI on every invocation, save it to your user config with `set create-uri`. It is read automatically whenever you run `npx aidd create`:

```bash
npx aidd set create-uri https://github.com/org/scaffold
npx aidd set create-uri file:///path/to/my-scaffold
```

The value is saved to `~/.aidd/config.yml`. You can also hand-edit it directly:

```yaml
# ~/.aidd/config.yml
create-uri: https://github.com/your-org/my-scaffold
```

The lookup priority is:

```
CLI <type> arg > AIDD_CUSTOM_CREATE_URI env var > ~/.aidd/config.yml > default (next-shadcn)
```

## ⚙️ Customizing aidd Framework for your Project

After installing the aidd system, create an `aidd-custom/` directory at your project root to extend or override the defaults without touching the built-in `ai/` files. Changes in `aidd-custom/` supersede the project root in case of any conflict.

```
your-project/
├── ai/ # built-in aidd framework files (don't edit)
├── aidd-custom/ # your project-specific customizations
│ ├── config.yml # project-level aidd settings
│ └── AGENTS.md # project-specific agent instructions
└── ...
```

### `aidd-custom/config.yml`

Store project-level aidd settings as YAML (token-friendly for AI context injection):

```yaml
# aidd-custom/config.yml
stack: next-shadcn
team: my-org
```

### `aidd-custom/AGENTS.md`

Project-specific instructions for AI agents. Write rules, constraints, and context that apply only to your project. AI agents are instructed to read `aidd-custom/AGENTS.md` after `AGENTS.md` — directives here override the defaults.

```markdown
# Project Agent Instructions

## Stack
We use Next.js 15 App Router with Tailwind CSS and shadcn/ui.

## Conventions
- All server actions live in `lib/actions/`
- Use `createRoute` from `aidd/server` for API routes
```
Comment thread
ericelliott marked this conversation as resolved.

## 📁 AI System Structure

After running the CLI, you'll have a complete `ai/` folder:
Expand Down
10 changes: 10 additions & 0 deletions activity-log.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
## February 18, 2026

- 🚀 - `npx aidd create` - New `create [type|URI] <folder>` subcommand with manifest-driven scaffolding (run/prompt steps, --agent flag, remote code warning)
- 🚀 - `npx aidd scaffold-cleanup` - New cleanup subcommand removes `.aidd/` working directory
- 🔧 - Extension resolver - Supports named scaffolds, `file://`, and `https://`; remote scaffolds require HTTPS (`http://` URIs are rejected) with confirmation prompt for remote code
- 🔧 - SCAFFOLD-MANIFEST.yml runner - Executes run/prompt steps sequentially; prompt steps use array spawn to prevent shell injection
- 📦 - `scaffold-example` scaffold - Minimal E2E fixture: `npm init`, vitest test script, installs riteway/vitest/playwright/error-causes/@paralleldrive/cuid2
- 📦 - `next-shadcn` scaffold stub - Default named scaffold with placeholder manifest for future Next.js + shadcn/ui implementation
- 🧪 - 44 new tests - Unit tests for resolver, runner, cleanup; E2E tests covering full scaffold lifecycle

## October 20, 2025

- 📱 - Help command clarity - AI workflow commands context
Expand Down
22 changes: 0 additions & 22 deletions ai/commands/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,65 +8,43 @@ This index provides an overview of the contents in this directory.

**File:** `aidd-fix.md`

*No description available*

### Commit

**File:** `commit.md`

*No description available*

### discover

**File:** `discover.md`

*No description available*

### execute

**File:** `execute.md`

*No description available*

### help

**File:** `help.md`

*No description available*

### log

**File:** `log.md`

*No description available*

### plan

**File:** `plan.md`

*No description available*

### 🔬 Code Review

**File:** `review.md`

*No description available*

### run-test

**File:** `run-test.md`

*No description available*

### task

**File:** `task.md`

*No description available*

### user-test

**File:** `user-test.md`

*No description available*

4 changes: 4 additions & 0 deletions ai/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ See [`commands/index.md`](./commands/index.md) for contents.

See [`rules/index.md`](./rules/index.md) for contents.

### 📁 scaffolds/

See [`scaffolds/index.md`](./scaffolds/index.md) for contents.

### 📁 skills/

See [`skills/index.md`](./skills/index.md) for contents.
Expand Down
4 changes: 0 additions & 4 deletions ai/rules/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,6 @@ When writing functional requirements for a user story, use this guide for functi

**File:** `review-example.md`

*No description available*

### 🔬 Code Review

**File:** `review.mdc`
Expand All @@ -84,8 +82,6 @@ when the user asks you to complete a task, use this guide for systematic task/ep

**File:** `tdd.mdc`

*No description available*

### UI/UX Engineer

**File:** `ui.mdc`
Expand Down
4 changes: 0 additions & 4 deletions ai/rules/javascript/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ This index provides an overview of the contents in this directory.

**File:** `error-causes.mdc`

*No description available*

### JavaScript IO Guide

**File:** `javascript-io-network-effects.mdc`
Expand All @@ -20,5 +18,3 @@ When you need to make network requests or invoke side-effects, use this guide fo

**File:** `javascript.mdc`

*No description available*

2 changes: 1 addition & 1 deletion ai/rules/please.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ Commands {
✅ /task - use the task creator to plan and execute a task epic
⚙️ /execute - use the task creator to execute a task epic
🔬 /review - conduct a thorough code review focusing on code quality, best practices, and adherence to project standards
🐛 /aidd-fix - fix a bug or implement review feedback following the full AIDD fix process
🧪 /user-test - use user-testing.mdc to generate human and AI agent test scripts from user journeys
🤖 /run-test - execute AI agent test script in real browser with screenshots
🐛 /aidd-fix - fix a bug or implement review feedback following the full AIDD fix process
}

Constraints {
Expand Down
14 changes: 14 additions & 0 deletions ai/scaffolds/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# scaffolds

This index provides an overview of the contents in this directory.

## Subdirectories

### 📁 next-shadcn/

See [`next-shadcn/index.md`](./next-shadcn/index.md) for contents.

### 📁 scaffold-example/

See [`scaffold-example/index.md`](./scaffold-example/index.md) for contents.

Comment thread
ericelliott marked this conversation as resolved.
28 changes: 28 additions & 0 deletions ai/scaffolds/next-shadcn/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# next-shadcn

The default AIDD scaffold for bootstrapping a Next.js project with shadcn/ui.

## What this scaffold sets up

- **Next.js** — React framework with App Router
- **shadcn/ui** — accessible, composable component library
- **Tailwind CSS** — utility-first CSS framework
- **TypeScript** — static type checking
- **Vitest** — fast unit test runner
- **Playwright** — end-to-end browser testing

## Usage

```sh
npx aidd create next-shadcn my-app
```

Or simply (next-shadcn is the default):

```sh
npx aidd create my-app
```

## Status

This scaffold is a stub. Full implementation is planned for a future release.
2 changes: 2 additions & 0 deletions ai/scaffolds/next-shadcn/SCAFFOLD-MANIFEST.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
steps:
- prompt: "This scaffold is a placeholder. Full next-shadcn scaffolding is coming soon. For now, please manually set up your Next.js project using: npx create-next-app@latest"
10 changes: 10 additions & 0 deletions ai/scaffolds/next-shadcn/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# next-shadcn

This index provides an overview of the contents in this directory.

## Files

### next-shadcn

**File:** `README.md`

Loading