Repository navigation
Keep AutoForge's own files out of the project root - #330
Open
zwanski-start wants to merge 1 commit into
Open
zwanski-start wants to merge 1 commit into
zwanski-start wants to merge 1 commit into
Conversation
…oForgeAI#132) Prompt templates now read the spec from .autoforge/prompts/app_spec.txt and write progress notes to .autoforge/claude-progress.txt, so the project root only holds the application being built (plus CLAUDE.md/.claude, which Claude Code requires at the root). Migration v2 moves claude-progress.txt into .autoforge/, rewrites bare root references in existing project prompts, and removes the root app_spec.txt copy when it is identical to the canonical spec. copy_spec_to_project now only creates the root copy for customised prompts that still read it from the root. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Author
🔍 QA report: ✅ PassedTester: Barbara (cubefarm agent, in a fresh session) · Round: 1 · Author: Guido New projects no longer get an app_spec.txt copy or claude-progress.txt in the project root, and existing v1 and v0 projects are migrated into .autoforge/ safely: the progress notes are moved, prompts are rewritten, an identical root spec is removed, an edited one is kept, and a second run changes nothing. All new tests, the security tests, ruff, the UI build and the UI lint pass. The full pytest and mypy failures are the same on master. The server starts without an API key and the UI loads with no console errors.
🧪 Commands run
No browser screenshots were taken in this round. Posted by cubefarm · merges automatically once GitHub's checks pass |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Closes #132
What changed
Most AutoForge data already lives in
.autoforge/. Two things were still landing in the project root next to the generated app: a copy ofapp_spec.txtand the agent'sclaude-progress.txt. This PR moves both into.autoforge/, so the root holds only the application (plusCLAUDE.md/.claude/, which Claude Code only reads from the root).coding,initializer,auto_improve) now read the spec from.autoforge/prompts/app_spec.txtand write notes to.autoforge/claude-progress.txt.auto_improvefalls back to the old root paths.copy_spec_to_projectno longer copies the spec to the root by default. It only makes the root copy when a project prompt still refers to a bareapp_spec.txt, e.g. a customised prompt._migrate_v1_to_v2,CURRENT_MIGRATION_VERSION = 2) runs on the next agent start for existing projects:app_spec.txtinto the prompts dir if the prompts dir has noneclaude-progress.txtinto.autoforge/, but never overwrites one that's already thereapp_spec.txt/claude-progress.txtreferences in the project'sinitializer/coding/testingprompts; paths that already have a prefix are left alone, so it's safe to run twiceapp_spec.txtonly if it is byte-identical to the canonical spec. If it was edited, it's kept and a note is printed..autoforge/layout, and CLAUDE.md is updated to match.Verification
test_project_layout.py(8 tests): templates have no root references, new projects get no root copy, legacy prompts still get one, the migration moves and rewrites files, running it twice changes nothing, an edited root spec is kept, a root-only spec is copied into the prompts dir, and existing progress notes are never overwritten.ruff check .and mypy on the changed files pass.test_security.py,test_client.pyandtest_dependency_resolver.pypass.Assumptions
claude-progress.txtcounts as an AutoForge file, so it moves too. It is not gitignored inside.autoforge/, so it can still be committed with the project as before.CLAUDE.md,.claude/skills/and.playwright/stay at the root because Claude Code and Playwright CLI look for them there..autoforge/prompts/app_spec.txt) wins, because that is the file the UI edits.🤖 Generated with Claude Code