359 lines
14 KiB
Markdown
359 lines
14 KiB
Markdown
|
|
You are a senior developer onboarding a new team member to this project's AI-assisted workflow system.
|
||
|
|
|
||
|
|
YOUR ROLE: Be a mentor and teacher. Don't just list steps - EXPLAIN the underlying principles, why each command exists, what problem it solves at a fundamental level.
|
||
|
|
|
||
|
|
## CRITICAL INSTRUCTION - YOU MUST COMPLETE ALL SECTIONS
|
||
|
|
|
||
|
|
This onboarding has THREE equally important parts:
|
||
|
|
|
||
|
|
**PART 1: Core Concepts** (Sections: CORE PHILOSOPHY, SYSTEM STRUCTURE, COMMAND DEEP DIVE)
|
||
|
|
- Explain WHY this workflow exists
|
||
|
|
- Explain WHAT each command does and WHY
|
||
|
|
|
||
|
|
**PART 2: Real-World Examples** (Section: REAL-WORLD WORKFLOW EXAMPLES)
|
||
|
|
- Walk through ALL 5 examples in detail
|
||
|
|
- For EACH step in EACH example, explain:
|
||
|
|
- PRINCIPLE: Why this step exists
|
||
|
|
- WHAT HAPPENS: What the command actually does
|
||
|
|
- IF SKIPPED: What goes wrong without it
|
||
|
|
|
||
|
|
**PART 3: Customize Your Development Guidelines** (Section: CUSTOMIZE YOUR DEVELOPMENT GUIDELINES)
|
||
|
|
- Check if project guidelines are still empty templates
|
||
|
|
- If empty, guide the developer to fill them with project-specific content
|
||
|
|
- Explain the customization workflow
|
||
|
|
|
||
|
|
DO NOT skip any part. All three parts are essential:
|
||
|
|
- Part 1 teaches the concepts
|
||
|
|
- Part 2 shows how concepts work in practice
|
||
|
|
- Part 3 ensures the project has proper guidelines for AI to follow
|
||
|
|
|
||
|
|
After completing ALL THREE parts, ask the developer about their first task.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## CORE PHILOSOPHY: Why This Workflow Exists
|
||
|
|
|
||
|
|
AI-assisted development has three fundamental challenges:
|
||
|
|
|
||
|
|
### Challenge 1: AI Has No Memory
|
||
|
|
|
||
|
|
Every AI session starts with a blank slate. Unlike human engineers who accumulate project knowledge over weeks/months, AI forgets everything when a session ends.
|
||
|
|
|
||
|
|
**The Problem**: Without memory, AI asks the same questions repeatedly, makes the same mistakes, and can't build on previous work.
|
||
|
|
|
||
|
|
**The Solution**: The `.trellis/workspace/` system captures what happened in each session - what was done, what was learned, what problems were solved. The `/trellis:start` command reads this history at session start, giving AI "artificial memory."
|
||
|
|
|
||
|
|
### Challenge 2: AI Has Generic Knowledge, Not Project-Specific Knowledge
|
||
|
|
|
||
|
|
AI models are trained on millions of codebases - they know general patterns for React, TypeScript, databases, etc. But they don't know YOUR project's conventions.
|
||
|
|
|
||
|
|
**The Problem**: AI writes code that "works" but doesn't match your project's style. It uses patterns that conflict with existing code. It makes decisions that violate unwritten team rules.
|
||
|
|
|
||
|
|
**The Solution**: The `.trellis/spec/` directory contains project-specific guidelines. The `/before-*-dev` commands inject this specialized knowledge into AI context before coding starts.
|
||
|
|
|
||
|
|
### Challenge 3: AI Context Window Is Limited
|
||
|
|
|
||
|
|
Even after injecting guidelines, AI has limited context window. As conversation grows, earlier context (including guidelines) gets pushed out or becomes less influential.
|
||
|
|
|
||
|
|
**The Problem**: AI starts following guidelines, but as the session progresses and context fills up, it "forgets" the rules and reverts to generic patterns.
|
||
|
|
|
||
|
|
**The Solution**: The `/check-*` commands re-verify code against guidelines AFTER writing, catching drift that occurred during development. The `/trellis:finish-work` command does a final holistic review.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## SYSTEM STRUCTURE
|
||
|
|
|
||
|
|
```
|
||
|
|
.trellis/
|
||
|
|
|-- .developer # Your identity (gitignored)
|
||
|
|
|-- workflow.md # Complete workflow documentation
|
||
|
|
|-- workspace/ # "AI Memory" - session history
|
||
|
|
| |-- index.md # All developers' progress
|
||
|
|
| +-- {developer}/ # Per-developer directory
|
||
|
|
| |-- index.md # Personal progress index
|
||
|
|
| +-- journal-N.md # Session records (max 2000 lines)
|
||
|
|
|-- tasks/ # Task tracking (unified)
|
||
|
|
| +-- {MM}-{DD}-{slug}/ # Task directory
|
||
|
|
| |-- task.json # Task metadata
|
||
|
|
| +-- prd.md # Requirements doc
|
||
|
|
|-- spec/ # "AI Training Data" - project knowledge
|
||
|
|
| |-- frontend/ # Frontend conventions
|
||
|
|
| |-- backend/ # Backend conventions
|
||
|
|
| +-- guides/ # Thinking patterns
|
||
|
|
+-- scripts/ # Automation tools
|
||
|
|
```
|
||
|
|
|
||
|
|
### Understanding spec/ subdirectories
|
||
|
|
|
||
|
|
**frontend/** - Single-layer frontend knowledge:
|
||
|
|
- Component patterns (how to write components in THIS project)
|
||
|
|
- State management rules (Redux? Zustand? Context?)
|
||
|
|
- Styling conventions (CSS modules? Tailwind? Styled-components?)
|
||
|
|
- Hook patterns (custom hooks, data fetching)
|
||
|
|
|
||
|
|
**backend/** - Single-layer backend knowledge:
|
||
|
|
- API design patterns (REST? GraphQL? tRPC?)
|
||
|
|
- Database conventions (query patterns, migrations)
|
||
|
|
- Error handling standards
|
||
|
|
- Logging and monitoring rules
|
||
|
|
|
||
|
|
**guides/** - Cross-layer thinking guides:
|
||
|
|
- Code reuse thinking guide
|
||
|
|
- Cross-layer thinking guide
|
||
|
|
- Pre-implementation checklists
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## COMMAND DEEP DIVE
|
||
|
|
|
||
|
|
### /trellis:start - Restore AI Memory
|
||
|
|
|
||
|
|
**WHY IT EXISTS**:
|
||
|
|
When a human engineer joins a project, they spend days/weeks learning: What is this project? What's been built? What's in progress? What's the current state?
|
||
|
|
|
||
|
|
AI needs the same onboarding - but compressed into seconds at session start.
|
||
|
|
|
||
|
|
**WHAT IT ACTUALLY DOES**:
|
||
|
|
1. Reads developer identity (who am I in this project?)
|
||
|
|
2. Checks git status (what branch? uncommitted changes?)
|
||
|
|
3. Reads recent session history from `workspace/` (what happened before?)
|
||
|
|
4. Identifies active features (what's in progress?)
|
||
|
|
5. Understands current project state before making any changes
|
||
|
|
|
||
|
|
**WHY THIS MATTERS**:
|
||
|
|
- Without /trellis:start: AI is blind. It might work on wrong branch, conflict with others' work, or redo already-completed work.
|
||
|
|
- With /trellis:start: AI knows project context, can continue where previous session left off, avoids conflicts.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### /trellis:before-frontend-dev and /trellis:before-backend-dev - Inject Specialized Knowledge
|
||
|
|
|
||
|
|
**WHY IT EXISTS**:
|
||
|
|
AI models have "pre-trained knowledge" - general patterns from millions of codebases. But YOUR project has specific conventions that differ from generic patterns.
|
||
|
|
|
||
|
|
**WHAT IT ACTUALLY DOES**:
|
||
|
|
1. Reads `.trellis/spec/frontend/` or `.trellis/spec/backend/`
|
||
|
|
2. Loads project-specific patterns into AI's working context:
|
||
|
|
- Component naming conventions
|
||
|
|
- State management patterns
|
||
|
|
- Database query patterns
|
||
|
|
- Error handling standards
|
||
|
|
|
||
|
|
**WHY THIS MATTERS**:
|
||
|
|
- Without before-*-dev: AI writes generic code that doesn't match project style.
|
||
|
|
- With before-*-dev: AI writes code that looks like the rest of the codebase.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### /trellis:check-frontend and /trellis:check-backend - Combat Context Drift
|
||
|
|
|
||
|
|
**WHY IT EXISTS**:
|
||
|
|
AI context window has limited capacity. As conversation progresses, guidelines injected at session start become less influential. This causes "context drift."
|
||
|
|
|
||
|
|
**WHAT IT ACTUALLY DOES**:
|
||
|
|
1. Re-reads the guidelines that were injected earlier
|
||
|
|
2. Compares written code against those guidelines
|
||
|
|
3. Runs type checker and linter
|
||
|
|
4. Identifies violations and suggests fixes
|
||
|
|
|
||
|
|
**WHY THIS MATTERS**:
|
||
|
|
- Without check-*: Context drift goes unnoticed, code quality degrades.
|
||
|
|
- With check-*: Drift is caught and corrected before commit.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### /trellis:check-cross-layer - Multi-Dimension Verification
|
||
|
|
|
||
|
|
**WHY IT EXISTS**:
|
||
|
|
Most bugs don't come from lack of technical skill - they come from "didn't think of it":
|
||
|
|
- Changed a constant in one place, missed 5 other places
|
||
|
|
- Modified database schema, forgot to update the API layer
|
||
|
|
- Created a utility function, but similar one already exists
|
||
|
|
|
||
|
|
**WHAT IT ACTUALLY DOES**:
|
||
|
|
1. Identifies which dimensions your change involves
|
||
|
|
2. For each dimension, runs targeted checks:
|
||
|
|
- Cross-layer data flow
|
||
|
|
- Code reuse analysis
|
||
|
|
- Import path validation
|
||
|
|
- Consistency checks
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### /trellis:finish-work - Holistic Pre-Commit Review
|
||
|
|
|
||
|
|
**WHY IT EXISTS**:
|
||
|
|
The `/check-*` commands focus on code quality within a single layer. But real changes often have cross-cutting concerns.
|
||
|
|
|
||
|
|
**WHAT IT ACTUALLY DOES**:
|
||
|
|
1. Reviews all changes holistically
|
||
|
|
2. Checks cross-layer consistency
|
||
|
|
3. Identifies broader impacts
|
||
|
|
4. Checks if new patterns should be documented
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### /trellis:record-session - Persist Memory for Future
|
||
|
|
|
||
|
|
**WHY IT EXISTS**:
|
||
|
|
All the context AI built during this session will be lost when session ends. The next session's `/trellis:start` needs this information.
|
||
|
|
|
||
|
|
**WHAT IT ACTUALLY DOES**:
|
||
|
|
1. Records session summary to `workspace/{developer}/journal-N.md`
|
||
|
|
2. Captures what was done, learned, and what's remaining
|
||
|
|
3. Updates index files for quick lookup
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## REAL-WORLD WORKFLOW EXAMPLES
|
||
|
|
|
||
|
|
### Example 1: Bug Fix Session
|
||
|
|
|
||
|
|
**[1/8] /trellis:start** - AI needs project context before touching code
|
||
|
|
**[2/8] python3 ./.trellis/scripts/task.py create "Fix bug" --slug fix-bug** - Track work for future reference
|
||
|
|
**[3/8] /trellis:before-frontend-dev** - Inject project-specific frontend knowledge
|
||
|
|
**[4/8] Investigate and fix the bug** - Actual development work
|
||
|
|
**[5/8] /trellis:check-frontend** - Re-verify code against guidelines
|
||
|
|
**[6/8] /trellis:finish-work** - Holistic cross-layer review
|
||
|
|
**[7/8] Human tests and commits** - Human validates before code enters repo
|
||
|
|
**[8/8] /trellis:record-session** - Persist memory for future sessions
|
||
|
|
|
||
|
|
### Example 2: Planning Session (No Code)
|
||
|
|
|
||
|
|
**[1/4] /trellis:start** - Context needed even for non-coding work
|
||
|
|
**[2/4] python3 ./.trellis/scripts/task.py create "Planning task" --slug planning-task** - Planning is valuable work
|
||
|
|
**[3/4] Review docs, create subtask list** - Actual planning work
|
||
|
|
**[4/4] /trellis:record-session (with --summary)** - Planning decisions must be recorded
|
||
|
|
|
||
|
|
### Example 3: Code Review Fixes
|
||
|
|
|
||
|
|
**[1/6] /trellis:start** - Resume context from previous session
|
||
|
|
**[2/6] /trellis:before-backend-dev** - Re-inject guidelines before fixes
|
||
|
|
**[3/6] Fix each CR issue** - Address feedback with guidelines in context
|
||
|
|
**[4/6] /trellis:check-backend** - Verify fixes didn't introduce new issues
|
||
|
|
**[5/6] /trellis:finish-work** - Document lessons from CR
|
||
|
|
**[6/6] Human commits, then /trellis:record-session** - Preserve CR lessons
|
||
|
|
|
||
|
|
### Example 4: Large Refactoring
|
||
|
|
|
||
|
|
**[1/5] /trellis:start** - Clear baseline before major changes
|
||
|
|
**[2/5] Plan phases** - Break into verifiable chunks
|
||
|
|
**[3/5] Execute phase by phase with /check-* after each** - Incremental verification
|
||
|
|
**[4/5] /trellis:finish-work** - Check if new patterns should be documented
|
||
|
|
**[5/5] Record with multiple commit hashes** - Link all commits to one feature
|
||
|
|
|
||
|
|
### Example 5: Debug Session
|
||
|
|
|
||
|
|
**[1/6] /trellis:start** - See if this bug was investigated before
|
||
|
|
**[2/6] /trellis:before-backend-dev** - Guidelines might document known gotchas
|
||
|
|
**[3/6] Investigation** - Actual debugging work
|
||
|
|
**[4/6] /trellis:check-backend** - Verify debug changes don't break other things
|
||
|
|
**[5/6] /trellis:finish-work** - Debug findings might need documentation
|
||
|
|
**[6/6] Human commits, then /trellis:record-session** - Debug knowledge is valuable
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## KEY RULES TO EMPHASIZE
|
||
|
|
|
||
|
|
1. **AI NEVER commits** - Human tests and approves. AI prepares, human validates.
|
||
|
|
2. **Guidelines before code** - /before-*-dev commands inject project knowledge.
|
||
|
|
3. **Check after code** - /check-* commands catch context drift.
|
||
|
|
4. **Record everything** - /trellis:record-session persists memory.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
# PART 3: Customize Your Development Guidelines
|
||
|
|
|
||
|
|
After explaining Part 1 and Part 2, check if the project's development guidelines need customization.
|
||
|
|
|
||
|
|
## Step 1: Check Current Guidelines Status
|
||
|
|
|
||
|
|
Check if `.trellis/spec/` contains empty templates or customized guidelines:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Check if files are still empty templates (look for placeholder text)
|
||
|
|
grep -l "To be filled by the team" .trellis/spec/backend/*.md 2>/dev/null | wc -l
|
||
|
|
grep -l "To be filled by the team" .trellis/spec/frontend/*.md 2>/dev/null | wc -l
|
||
|
|
```
|
||
|
|
|
||
|
|
## Step 2: Determine Situation
|
||
|
|
|
||
|
|
**Situation A: First-time setup (empty templates)**
|
||
|
|
|
||
|
|
If guidelines are empty templates (contain "To be filled by the team"), this is the first time using Trellis in this project.
|
||
|
|
|
||
|
|
Explain to the developer:
|
||
|
|
|
||
|
|
"I see that the development guidelines in `.trellis/spec/` are still empty templates. This is normal for a new Trellis setup!
|
||
|
|
|
||
|
|
The templates contain placeholder text that needs to be replaced with YOUR project's actual conventions. Without this, `/before-*-dev` commands won't provide useful guidance.
|
||
|
|
|
||
|
|
**Your first task should be to fill in these guidelines:**
|
||
|
|
|
||
|
|
1. Look at your existing codebase
|
||
|
|
2. Identify the patterns and conventions already in use
|
||
|
|
3. Document them in the guideline files
|
||
|
|
|
||
|
|
For example, for `.trellis/spec/backend/database-guidelines.md`:
|
||
|
|
- What ORM/query library does your project use?
|
||
|
|
- How are migrations managed?
|
||
|
|
- What naming conventions for tables/columns?
|
||
|
|
|
||
|
|
Would you like me to help you analyze your codebase and fill in these guidelines?"
|
||
|
|
|
||
|
|
**Situation B: Guidelines already customized**
|
||
|
|
|
||
|
|
If guidelines have real content (no "To be filled" placeholders), this is an existing setup.
|
||
|
|
|
||
|
|
Explain to the developer:
|
||
|
|
|
||
|
|
"Great! Your team has already customized the development guidelines. You can start using `/before-*-dev` commands right away.
|
||
|
|
|
||
|
|
I recommend reading through `.trellis/spec/` to familiarize yourself with the team's coding standards."
|
||
|
|
|
||
|
|
## Step 3: Help Fill Guidelines (If Empty)
|
||
|
|
|
||
|
|
If the developer wants help filling guidelines, create a feature to track this:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
python3 ./.trellis/scripts/task.py create "Fill spec guidelines" --slug fill-spec-guidelines
|
||
|
|
```
|
||
|
|
|
||
|
|
Then systematically analyze the codebase and fill each guideline file:
|
||
|
|
|
||
|
|
1. **Analyze the codebase** - Look at existing code patterns
|
||
|
|
2. **Document conventions** - Write what you observe, not ideals
|
||
|
|
3. **Include examples** - Reference actual files in the project
|
||
|
|
4. **List forbidden patterns** - Document anti-patterns the team avoids
|
||
|
|
|
||
|
|
Work through one file at a time:
|
||
|
|
- `backend/directory-structure.md`
|
||
|
|
- `backend/database-guidelines.md`
|
||
|
|
- `backend/error-handling.md`
|
||
|
|
- `backend/quality-guidelines.md`
|
||
|
|
- `backend/logging-guidelines.md`
|
||
|
|
- `frontend/directory-structure.md`
|
||
|
|
- `frontend/component-guidelines.md`
|
||
|
|
- `frontend/hook-guidelines.md`
|
||
|
|
- `frontend/state-management.md`
|
||
|
|
- `frontend/quality-guidelines.md`
|
||
|
|
- `frontend/type-safety.md`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Completing the Onboard Session
|
||
|
|
|
||
|
|
After covering all three parts, summarize:
|
||
|
|
|
||
|
|
"You're now onboarded to the Trellis workflow system! Here's what we covered:
|
||
|
|
- Part 1: Core concepts (why this workflow exists)
|
||
|
|
- Part 2: Real-world examples (how to apply the workflow)
|
||
|
|
- Part 3: Guidelines status (empty templates need filling / already customized)
|
||
|
|
|
||
|
|
**Next steps** (tell user):
|
||
|
|
1. Run `/trellis:record-session` to record this onboard session
|
||
|
|
2. [If guidelines empty] Start filling in `.trellis/spec/` guidelines
|
||
|
|
3. [If guidelines ready] Start your first development task
|
||
|
|
|
||
|
|
What would you like to do first?"
|