This file is only read during first-time template configuration.
When an AI assistant detects SETUP_PLACEHOLDER markers in AGENTS.md, it should read this file and follow these instructions to configure the project.
This automated setup process asks the user 5 questions and updates AGENTS.md and README.md with project-specific configuration.
Setup triggers when AGENTS.md contains these placeholder markers:
SETUP_PLACEHOLDER_RUNTIME(Runtime Environment section)SETUP_PLACEHOLDER_LANGUAGE(Programming Language section)SETUP_PLACEHOLDER_DOCS(Documentation Standard section)
If all three are found, begin interactive configuration.
Ask questions conversationally, one at a time. Don't rush or present all questions at once.
Ask: "What's the name of your project?"
Format: Free text
Examples: "task-manager", "CodeQuiz", "API Gateway"
Store as: PROJECT_NAME
Ask: "In one sentence, what does this project do?"
Format: Free text, ideally 10-20 words
Example: "A CLI tool for managing daily tasks with natural language input"
Store as: PROJECT_DESCRIPTION
Ask: "Will this project run:"
- "1. Within the AI coding interface (AI is the interface, no separate deployment)"
- "2. As a standalone application (traditional deployment with separate UI)"
Format: User chooses 1 or 2
Store as: RUNTIME_CHOICE (1 or 2)
Ask: "What programming language will you use? (e.g., Python, JavaScript, Go, TypeScript)"
Format: Free text
Examples: "Python", "JavaScript", "TypeScript", "Go", "Rust"
Store as: LANGUAGE
Follow-up ask: "Any language-specific conventions to note? (press Enter to skip)"
Format: Free text, optional
Examples: "Use async/await for all I/O", "Prefer functional programming", "Follow PEP 8 strictly"
Store as: LANGUAGE_CONVENTIONS (can be empty)
Ask: "What documentation standard should we use?"
- "1. British English"
- "2. American English"
- "3. Simple English"
- "4. Technical/Formal"
Format: User chooses 1-4
Store as: DOC_STANDARD (1, 2, 3, or 4)
After all questions, show summary:
Here's your project configuration:
- Project Name: {PROJECT_NAME}
- Description: {PROJECT_DESCRIPTION}
- Runtime: {runtime choice description}
- Language: {LANGUAGE}
- Conventions: {LANGUAGE_CONVENTIONS or "None specified"}
- Documentation: {doc standard description}
Does this look correct? (yes/no)
If "no": Ask "Which would you like to change?" and allow re-answering specific questions. If "yes": Proceed to file updates.
Find: SETUP_PLACEHOLDER_RUNTIME
Replace with (if RUNTIME_CHOICE = 1):
This application runs within the AI coding interface:
- Application runs via natural language interaction with AI assistant
- AI assistant is the interface
- No API keys or separate deployment needed
- Skills provide capabilities
- Simple file-based storage (JSON, CSV, etc.)Replace with (if RUNTIME_CHOICE = 2):
This application runs as a standalone application:
- Traditional approach with separate deployment
- Own UI (GUI or CLI)
- May require LLM API access if AI features needed
- Standard runtime environmentFind: SETUP_PLACEHOLDER_LANGUAGE
Replace with language-specific content:
For Python:
**Language:** Python 3.8+
- Follow PEP 8 style guidelines
- Use type hints where beneficial
{LANGUAGE_CONVENTIONS if provided}For JavaScript:
**Language:** JavaScript (ES6+)
- Follow Standard JS style guide
- Prefer const/let over var
- Use async/await for async operations
{LANGUAGE_CONVENTIONS if provided}For TypeScript:
**Language:** TypeScript
- Use strict mode
- Define interfaces for all data structures
- Prefer explicit types over implicit
{LANGUAGE_CONVENTIONS if provided}For Go:
**Language:** Go
- Follow Effective Go guidelines
- Use gofmt for formatting
- Keep packages focused and small
{LANGUAGE_CONVENTIONS if provided}For other languages: Provide sensible defaults based on the language name and add LANGUAGE_CONVENTIONS if provided.
Find: SETUP_PLACEHOLDER_DOCS
Replace with:
**Documentation Standard:** {chosen standard name}
- Be consistent throughout the project
- All skills, code comments, and documentation follow this standardWhere choices map to:
- 1 → "British English"
- 2 → "American English"
- 3 → "Simple English"
- 4 → "Technical/Formal"
Replace entire README.md content with project-specific documentation.
New README.md structure:
# {PROJECT_NAME}
{PROJECT_DESCRIPTION}
## Architecture
### Runtime Environment
{Expanded runtime description based on RUNTIME_CHOICE:
- If RUNTIME_CHOICE = 1: "This application runs within the AI coding interface. You interact with it via natural language with your AI assistant. No separate deployment or API keys needed. Skills provide the application's capabilities."
- If RUNTIME_CHOICE = 2: "This application runs as a standalone application with traditional deployment. It has its own UI and standard runtime environment."
}
### Technical Stack
- **Language**: {LANGUAGE}
- **Documentation**: {DOC_STANDARD name}
- **Commits**: Conventional Commits specification
- **Skills**: AI capabilities via skills directory
## Project Structure
```
project/
├── .claude/
│ ├── skills -> ../skills # Symlink for Claude Code compatibility
│ └── settings.local.json # Claude-specific settings (not tracked)
├── AGENTS.md # Project conventions and session bootstrap
├── README.md # This file - project documentation
├── CLAUDE.md # Claude Code auto-load redirect
├── GEMINI.md # Gemini CLI redirect (future compatibility)
├── SETUP.md # First-time setup guide (for AI assistants)
├── skills/ # Canonical location for AI capabilities
│ ├── spec.md # Creates project specifications
│ └── commit.md # Formats commit messages
└── [project files] # Your application code
```
## Getting Started
### For AI Coding Assistants
To start working with this project:
**Codex CLI (OpenAI):** AGENTS.md loads automatically - just start working
**Claude Code:** Say anything to start (if CLAUDE.md is configured), or say "Read AGENTS.md"
### What Happens at Session Start
When AGENTS.md is loaded, your AI assistant will:
1. Load all available skills from the `skills/` directory
2. Check your current progress via git
3. Report available skills and conventions
4. Get ready to help
### Available Skills
Current skills in `skills/` directory:
- **spec** - Create project specifications
- **commit** - Format commit messages following Conventional Commits
To add more skills, create `skills/skillname.md` with YAML frontmatter and instructions.
## Development Workflow
### Spec-First Development
1. Start with problem statement
2. Create specification (what the system does)
3. Define user stories (features from user perspective)
4. Implement iteratively, one story at a time
5. Use conventional commits for clean history
### Using Skills
You don't need special syntax. Just talk naturally:
- "Create a spec for a quiz app" → AI activates spec skill
- "I want to commit these changes" → AI activates commit skill
- "Run the tests" → AI activates test skill (if you've added one)
The AI automatically matches your request to the appropriate skill based on descriptions.
### Creating Skills
Skills are markdown files with YAML frontmatter:
```yaml
---
name: skill-name
description: When to use this skill. AI uses this to auto-activate.
---
# Skill Name
[Instructions for what the skill does]Simple skills: Single .md file in skills/ directory
Complex skills: Directory skills/name/ with SKILL.md plus supporting files
Since conversations may be interrupted:
- Git tracks completed work
- AGENTS.md reloads all context
- AI checks git log to see progress
- Continue from where you left off
Just say "Read AGENTS.md" again to re-establish context in a new session.
For detailed conventions, coding standards, and session bootstrap process, see AGENTS.md.
### Completion Message
After all files are updated, show:
Configuration complete! Here's what was set up:
Project Configuration:
- Name: {PROJECT_NAME}
- Description: {PROJECT_DESCRIPTION}
- Runtime: {runtime choice description}
- Language: {LANGUAGE}
- Documentation: {doc standard name}
Updated Files:
- AGENTS.md (configured with your project settings)
- README.md (transformed to project documentation)
Next Steps:
- Review the changes to AGENTS.md and README.md
- When ready, say "commit these changes" to create a commit
- Suggested commit message: "chore: configure project from template"
Then continue with normal session bootstrap (check git status, list skills, confirm ready).
## Edge Cases
### User interrupts setup
- Don't modify any files
- Next session will detect placeholders and restart setup
### User provides unclear answer
- Ask for clarification
- Provide examples of good answers
- Re-ask the question
### User wants to change answer after confirmation
- Show numbered list of all answers
- Ask which number to change
- Re-ask that specific question
- Show updated summary and confirm again
### File write fails
- Report error clearly with filename
- Don't continue to next file
- Don't proceed with bootstrap
- User can retry setup next session
### User doesn't know what to answer
- Provide context and examples for the question
- Suggest common choices
- Allow "skip for now" only if truly optional (language conventions)
## Notes
This setup process is designed to be:
- **Conversational** - One question at a time, natural flow
- **Clear** - Examples and context for each question
- **Flexible** - Allow changes before committing
- **Robust** - Handle errors gracefully
- **Minimal** - Just 5 questions to configure the essentials
The AI assistant should feel empowered to adapt this flow slightly to the user's responses while maintaining the core structure and ensuring all required information is collected.