-
Notifications
You must be signed in to change notification settings - Fork 26
Add manifest-driven scaffolding with create and scaffold-cleanup commands
#97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
ericelliott
wants to merge
67
commits into
main
Choose a base branch
from
claude/execute-aidd-create-epic-orEHx
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
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 c44a730
chore: update ai/ index.md for new scaffolds directory
claude 66788a3
fix(scaffold): harden security and code quality from review
claude 0f09140
feat: adopt error-causes for typed scaffold error branching
claude 0f74eea
fix: clone entire scaffold repo instead of fetching 3 individual files
claude 62db574
fix: two bugs in scaffold runner and create command
claude b35d3d9
feat: validate manifest steps, add verify-scaffold command, and docum…
claude b3ceabb
fix(cli): restore correct argument order for create command — type fi…
claude 114ebbb
fix(cli): parse create args correctly for 1-arg and 2-arg forms; run …
claude 7f1c116
fix(cli): clarify that folder is required in create command help output
claude c6d1889
fix: use @paralleldrive/cuid2 in task requirements for consistency (#99)
Copilot 6d2c48c
fix(create): remediation pass 1 — pre-commit, cleanup tip, ambiguous …
claude 5b23877
feat(install): add e2e test instruction to AGENTS.md + create CLAUDE.…
claude f12aca0
fix(scaffold): js-yaml direct dep, tarball download, scaffold authori…
claude dd1fdaf
refactor(create): factor create/verify-scaffold handlers into dedicat…
claude d2e7dc9
fix(create): remediation pass 2 — HTTPS enforcement, conditional clea…
claude eaf3d26
fix(create): remediation pass 2 batch 2 — YAML schema, CLAUDE.md read…
claude 25d9137
fix(create): remediation pass 2 batch 3 — path traversal guard, GitHu…
claude 4bb1ad4
fix(create): remediation pass 2 batch 4 — readline, stdin, cancellati…
claude abfd675
test(e2e): correct cleanup tip assertion for named scaffolds
claude 518d614
fix(test): make ensureDir injectable in runCreate to prevent EACCES i…
claude de62091
docs(scaffolds): update remote scaffold example to bare GitHub repo URL
claude cb37e62
feat(config): add \`npx aidd set create-uri\` command and rename env var
claude e0a941b
refactor(config): switch set create-uri to YAML home config, add aidd…
claude 2759902
refactor(set): remove config file machinery, set prints export statement
claude ccf91e2
feat(set): restore ~/.aidd/config.yml as direct config source in reso…
claude 784fee6
docs: document ~/.aidd/config.yml, fix stale tarball URL prose, simpl…
claude 1a0a6e6
fix(verify-scaffold): download to ~/.aidd/scaffold/ and always clean up
claude 683d794
fix(resolveNamed): use path.relative() for containment check; fix mis…
claude 8aa00e6
feat(scaffold-resolver): support GITHUB_TOKEN for private repos and r…
claude adcb4a9
style: use literal property keys for Authorization header (biome)
claude 6182020
docs: add missing ambiguous-step validation rule to scaffold-authorin…
claude 3edf687
docs: delete misplaced SCAFFOLD-AUTHORING.md from ai/scaffolds/
claude 8964b3c
fix(scaffold-create): detect URI-only single arg and return null for …
claude 57e5f5b
chore(epic): add missing requirement for URI-only single-arg detection
claude fb0347c
feat(skills): add aidd-fix skill and /fix command
claude 5aff408
chore: update ai/index.md to include skills/ subdirectory
claude d386621
feat(skills): make aidd-fix discoverable for Cursor and Claude Code
claude 8c469c0
feat(cli): add --claude flag and extract lib/symlinks.js
claude f355dc3
fix(index-generator,skills): clean up skill metadata and index output
claude 6d40ff4
docs(activity-log): remove http:// from resolver protocol list; note …
cursoragent 764a30b
docs(epic): add env var cleanup requirement to scaffold resolver section
cursoragent 0812500
fix(scaffold-resolver): prevent env var pollution when AIDD_CUSTOM_CR…
cursoragent fe44a5c
docs(epic): remove http:// from AIDD_CUSTOM_CREATE_URI supported schemes
cursoragent 13c43cc
docs(epic): add requirement — no directory created if resolution fails
cursoragent 31e425a
fix(scaffold-create): defer ensureDir until after resolveExtension su…
cursoragent 690ce89
test(package): add failing test for engines.node field
cursoragent 0eaf5ad
fix(scaffold-verifier): include manifestPath in missing manifest error
cursoragent c296660
fix(scaffold-create): include http:// in URI-only single-arg detection
cursoragent a092d24
fix(scaffold-create): quote folder paths with spaces in cleanup tip
cursoragent 8e91354
docs(epic): document CLAUDE.md stability requirement for repeated ins…
cursoragent 0c93a47
fix(agents-md): use hasAllDirectives to detect first-install CLAUDE.md
cursoragent 8b3eded
fix(scaffold-runner): validate run/prompt values are strings in parse…
cursoragent 4180d4d
chore: update package-lock.json
cursoragent f4bbff3
chore(merge): merge main into PR branch, resolve conflicts
cursoragent 4e33260
chore: update auto-generated index.md files after merge
cursoragent 14100a3
fix(claude-md): sync committed CLAUDE.md with current agentsMdContent…
cursoragent ec65c6e
fix(please.mdc): remove duplicate /aidd-fix entry from Commands block
cursoragent 869a69d
docs(claude-symlink-epic): add cause.name dispatch requirements
cursoragent 8401c03
test(symlinks): add failing tests for cause.name dispatch on Validati…
cursoragent 6de068c
fix(symlinks): add name property to ValidationError and FileSystemErr…
cursoragent bacf2f0
docs(epic): add pre-commit sync requirement for AGENTS.md and CLAUDE.md
cursoragent 58ed3d1
fix(pre-commit): sync AGENTS.md and CLAUDE.md with agentsMdContent on…
cursoragent 003c78d
fix(aidd-config): restrict YAML parsing to JSON_SCHEMA in readConfig
cursoragent eff8a23
fix(scaffold-verifier): include manifestPath in not-found error message
cursoragent df4b5b3
refactor: remove bin/extension.js as a first-class scaffold concept
cursoragent 99f674a
docs(scaffold-example): add release-it to README dependency list and …
cursoragent File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 | ||
|
|
||
| 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. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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. | ||
|
|
||
|
ericelliott marked this conversation as resolved.
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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` | ||
|
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.