forked from mengyxu/noob-components
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
347 lines
9.3 KiB
347 lines
9.3 KiB
|
3 months ago
|
---
|
||
|
|
name: start
|
||
|
|
description: "Start Session"
|
||
|
|
---
|
||
|
|
|
||
|
|
# Start Session
|
||
|
|
|
||
|
|
Initialize your AI development session and begin working on tasks.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Operation Types
|
||
|
|
|
||
|
|
| Marker | Meaning | Executor |
|
||
|
|
|--------|---------|----------|
|
||
|
|
| `[AI]` | Bash scripts or tool calls executed by AI | You (AI) |
|
||
|
|
| `[USER]` | Skills executed by user | User |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Initialization `[AI]`
|
||
|
|
|
||
|
|
### Step 1: Understand Development Workflow
|
||
|
|
|
||
|
|
First, read the workflow guide to understand the development process:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cat .trellis/workflow.md
|
||
|
|
```
|
||
|
|
|
||
|
|
**Follow the instructions in workflow.md** - it contains:
|
||
|
|
- Core principles (Read Before Write, Follow Standards, etc.)
|
||
|
|
- File system structure
|
||
|
|
- Development process
|
||
|
|
- Best practices
|
||
|
|
|
||
|
|
### Step 2: Get Current Context
|
||
|
|
|
||
|
|
```bash
|
||
|
|
python3 ./.trellis/scripts/get_context.py
|
||
|
|
```
|
||
|
|
|
||
|
|
This shows: developer identity, git status, current task (if any), active tasks.
|
||
|
|
|
||
|
|
### Step 3: Read Guidelines Index
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cat .trellis/spec/frontend/index.md # Frontend guidelines
|
||
|
|
cat .trellis/spec/backend/index.md # Backend guidelines
|
||
|
|
cat .trellis/spec/guides/index.md # Thinking guides
|
||
|
|
```
|
||
|
|
|
||
|
|
> **Important**: The index files are navigation — they list the actual guideline files (e.g., `error-handling.md`, `conventions.md`, `mock-strategies.md`).
|
||
|
|
> At this step, just read the indexes to understand what's available.
|
||
|
|
> When you start actual development, you MUST go back and read the specific guideline files relevant to your task, as listed in the index's Pre-Development Checklist.
|
||
|
|
|
||
|
|
### Step 4: Report and Ask
|
||
|
|
|
||
|
|
Report what you learned and ask: "What would you like to work on?"
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Task Classification
|
||
|
|
|
||
|
|
When user describes a task, classify it:
|
||
|
|
|
||
|
|
| Type | Criteria | Workflow |
|
||
|
|
|------|----------|----------|
|
||
|
|
| **Question** | User asks about code, architecture, or how something works | Answer directly |
|
||
|
|
| **Trivial Fix** | Typo fix, comment update, single-line change, < 5 minutes | Direct Edit |
|
||
|
|
| **Simple Task** | Clear goal, 1-2 files, well-defined scope | Quick confirm → Task Workflow |
|
||
|
|
| **Complex Task** | Vague goal, multiple files, architectural decisions | **Brainstorm → Task Workflow** |
|
||
|
|
|
||
|
|
### Decision Rule
|
||
|
|
|
||
|
|
> **If in doubt, use Brainstorm + Task Workflow.**
|
||
|
|
>
|
||
|
|
> Task Workflow ensures code-specs are injected to the right context, resulting in higher quality code.
|
||
|
|
> The overhead is minimal, but the benefit is significant.
|
||
|
|
|
||
|
|
> **Subtask Decomposition**: If brainstorm reveals multiple independent work items,
|
||
|
|
> consider creating subtasks using `--parent` flag or `add-subtask` command.
|
||
|
|
> See the brainstorm skill's Step 8 for details.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Question / Trivial Fix
|
||
|
|
|
||
|
|
For questions or trivial fixes, work directly:
|
||
|
|
|
||
|
|
1. Answer question or make the fix
|
||
|
|
2. If code was changed, remind user to run `$finish-work`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Simple Task
|
||
|
|
|
||
|
|
For simple, well-defined tasks:
|
||
|
|
|
||
|
|
1. Quick confirm: "I understand you want to [goal]. Shall I proceed?"
|
||
|
|
2. If no, clarify and confirm again
|
||
|
|
3. **If yes: execute ALL steps below without stopping. Do NOT ask for additional confirmation between steps.**
|
||
|
|
- Create task directory (Phase 1 Path B, Step 2)
|
||
|
|
- Write PRD (Step 3)
|
||
|
|
- Research codebase (Phase 2, Step 5)
|
||
|
|
- Configure context (Step 6)
|
||
|
|
- Activate task (Step 7)
|
||
|
|
- Implement (Phase 3, Step 8)
|
||
|
|
- Check quality (Step 9)
|
||
|
|
- Complete (Step 10)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Complex Task - Brainstorm First
|
||
|
|
|
||
|
|
For complex or vague tasks, **automatically start the brainstorm process** — do NOT skip directly to implementation.
|
||
|
|
|
||
|
|
See `$brainstorm` for the full process. Summary:
|
||
|
|
|
||
|
|
1. **Acknowledge and classify** - State your understanding
|
||
|
|
2. **Create task directory** - Track evolving requirements in `prd.md`
|
||
|
|
3. **Ask questions one at a time** - Update PRD after each answer
|
||
|
|
4. **Propose approaches** - For architectural decisions
|
||
|
|
5. **Confirm final requirements** - Get explicit approval
|
||
|
|
6. **Proceed to Task Workflow** - With clear requirements in PRD
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Task Workflow (Development Tasks)
|
||
|
|
|
||
|
|
**Why this workflow?**
|
||
|
|
- Run a dedicated research pass before coding
|
||
|
|
- Configure specs in jsonl context files
|
||
|
|
- Implement using injected context
|
||
|
|
- Verify with a separate check pass
|
||
|
|
- Result: Code that follows project conventions automatically
|
||
|
|
|
||
|
|
### Overview: Two Entry Points
|
||
|
|
|
||
|
|
```
|
||
|
|
From Brainstorm (Complex Task):
|
||
|
|
PRD confirmed → Research → Configure Context → Activate → Implement → Check → Complete
|
||
|
|
|
||
|
|
From Simple Task:
|
||
|
|
Confirm → Create Task → Write PRD → Research → Configure Context → Activate → Implement → Check → Complete
|
||
|
|
```
|
||
|
|
|
||
|
|
**Key principle: Research happens AFTER requirements are clear (PRD exists).**
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### Phase 1: Establish Requirements
|
||
|
|
|
||
|
|
#### Path A: From Brainstorm (skip to Phase 2)
|
||
|
|
|
||
|
|
PRD and task directory already exist from brainstorm. Skip directly to Phase 2.
|
||
|
|
|
||
|
|
#### Path B: From Simple Task
|
||
|
|
|
||
|
|
**Step 1: Confirm Understanding** `[AI]`
|
||
|
|
|
||
|
|
Quick confirm:
|
||
|
|
- What is the goal?
|
||
|
|
- What type of development? (frontend / backend / fullstack)
|
||
|
|
- Any specific requirements or constraints?
|
||
|
|
|
||
|
|
If unclear, ask clarifying questions.
|
||
|
|
|
||
|
|
**Step 2: Create Task Directory** `[AI]`
|
||
|
|
|
||
|
|
```bash
|
||
|
|
TASK_DIR=$(python3 ./.trellis/scripts/task.py create "<title>" --slug <name>)
|
||
|
|
```
|
||
|
|
|
||
|
|
**Step 3: Write PRD** `[AI]`
|
||
|
|
|
||
|
|
Create `prd.md` in the task directory with:
|
||
|
|
|
||
|
|
```markdown
|
||
|
|
# <Task Title>
|
||
|
|
|
||
|
|
## Goal
|
||
|
|
<What we're trying to achieve>
|
||
|
|
|
||
|
|
## Requirements
|
||
|
|
- <Requirement 1>
|
||
|
|
- <Requirement 2>
|
||
|
|
|
||
|
|
## Acceptance Criteria
|
||
|
|
- [ ] <Criterion 1>
|
||
|
|
- [ ] <Criterion 2>
|
||
|
|
|
||
|
|
## Technical Notes
|
||
|
|
<Any technical decisions or constraints>
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### Phase 2: Prepare for Implementation (shared)
|
||
|
|
|
||
|
|
> Both paths converge here. PRD and task directory must exist before proceeding.
|
||
|
|
|
||
|
|
**Step 4: Code-Spec Depth Check** `[AI]`
|
||
|
|
|
||
|
|
If the task touches infra or cross-layer contracts, do not start implementation until code-spec depth is defined.
|
||
|
|
|
||
|
|
Trigger this requirement when the change includes any of:
|
||
|
|
- New or changed command/API signatures
|
||
|
|
- Database schema or migration changes
|
||
|
|
- Infra integrations (storage, queue, cache, secrets, env contracts)
|
||
|
|
- Cross-layer payload transformations
|
||
|
|
|
||
|
|
Must-have before proceeding:
|
||
|
|
- [ ] Target code-spec files to update are identified
|
||
|
|
- [ ] Concrete contract is defined (signature, fields, env keys)
|
||
|
|
- [ ] Validation and error matrix is defined
|
||
|
|
- [ ] At least one Good/Base/Bad case is defined
|
||
|
|
|
||
|
|
**Step 5: Research the Codebase** `[AI]`
|
||
|
|
|
||
|
|
Based on the confirmed PRD, run a focused research pass and produce:
|
||
|
|
|
||
|
|
1. Relevant spec files in `.trellis/spec/`
|
||
|
|
2. Existing code patterns to follow (2-3 examples)
|
||
|
|
3. Files that will likely need modification
|
||
|
|
|
||
|
|
Use this output format:
|
||
|
|
|
||
|
|
```markdown
|
||
|
|
## Relevant Specs
|
||
|
|
- <path>: <why it's relevant>
|
||
|
|
|
||
|
|
## Code Patterns Found
|
||
|
|
- <pattern>: <example file path>
|
||
|
|
|
||
|
|
## Files to Modify
|
||
|
|
- <path>: <what change>
|
||
|
|
```
|
||
|
|
|
||
|
|
**Step 6: Configure Context** `[AI]`
|
||
|
|
|
||
|
|
Initialize default context:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
python3 ./.trellis/scripts/task.py init-context "$TASK_DIR" <type>
|
||
|
|
# type: backend | frontend | fullstack
|
||
|
|
```
|
||
|
|
|
||
|
|
Add specs found in your research pass:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# For each relevant spec and code pattern:
|
||
|
|
python3 ./.trellis/scripts/task.py add-context "$TASK_DIR" implement "<path>" "<reason>"
|
||
|
|
python3 ./.trellis/scripts/task.py add-context "$TASK_DIR" check "<path>" "<reason>"
|
||
|
|
```
|
||
|
|
|
||
|
|
**Step 7: Activate Task** `[AI]`
|
||
|
|
|
||
|
|
```bash
|
||
|
|
python3 ./.trellis/scripts/task.py start "$TASK_DIR"
|
||
|
|
```
|
||
|
|
|
||
|
|
This sets `.current-task` so hooks can inject context.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### Phase 3: Execute (shared)
|
||
|
|
|
||
|
|
**Step 8: Implement** `[AI]`
|
||
|
|
|
||
|
|
Implement the task described in `prd.md`.
|
||
|
|
|
||
|
|
- Follow all specs injected into implement context
|
||
|
|
- Keep changes scoped to requirements
|
||
|
|
- Run lint and typecheck before finishing
|
||
|
|
|
||
|
|
**Step 9: Check Quality** `[AI]`
|
||
|
|
|
||
|
|
Run a quality pass against check context:
|
||
|
|
|
||
|
|
- Review all code changes against the specs
|
||
|
|
- Fix issues directly
|
||
|
|
- Ensure lint and typecheck pass
|
||
|
|
|
||
|
|
**Step 10: Complete** `[AI]`
|
||
|
|
|
||
|
|
1. Verify lint and typecheck pass
|
||
|
|
2. Report what was implemented
|
||
|
|
3. Remind user to:
|
||
|
|
- Test the changes
|
||
|
|
- Commit when ready
|
||
|
|
- Run `$record-session` to record this session
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Continuing Existing Task
|
||
|
|
|
||
|
|
If `get_context.py` shows a current task:
|
||
|
|
|
||
|
|
1. Read the task's `prd.md` to understand the goal
|
||
|
|
2. Check `task.json` for current status and phase
|
||
|
|
3. Ask user: "Continue working on <task-name>?"
|
||
|
|
|
||
|
|
If yes, resume from the appropriate step (usually Step 7 or 8).
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Skills Reference
|
||
|
|
|
||
|
|
### User Skills `[USER]`
|
||
|
|
|
||
|
|
| Skill | When to Use |
|
||
|
|
|---------|-------------|
|
||
|
|
| `$start` | Begin a session (this skill) |
|
||
|
|
| `$finish-work` | Before committing changes |
|
||
|
|
| `$record-session` | After completing a task |
|
||
|
|
|
||
|
|
### AI Scripts `[AI]`
|
||
|
|
|
||
|
|
| Script | Purpose |
|
||
|
|
|--------|---------|
|
||
|
|
| `python3 ./.trellis/scripts/get_context.py` | Get session context |
|
||
|
|
| `python3 ./.trellis/scripts/task.py create` | Create task directory |
|
||
|
|
| `python3 ./.trellis/scripts/task.py init-context` | Initialize jsonl files |
|
||
|
|
| `python3 ./.trellis/scripts/task.py add-context` | Add spec to jsonl |
|
||
|
|
| `python3 ./.trellis/scripts/task.py start` | Set current task |
|
||
|
|
| `python3 ./.trellis/scripts/task.py finish` | Clear current task |
|
||
|
|
| `python3 ./.trellis/scripts/task.py archive` | Archive completed task |
|
||
|
|
|
||
|
|
### Workflow Phases `[AI]`
|
||
|
|
|
||
|
|
| Phase | Purpose | Context Source |
|
||
|
|
|-------|---------|----------------|
|
||
|
|
| research | Analyze codebase | direct repo inspection |
|
||
|
|
| implement | Write code | `implement.jsonl` |
|
||
|
|
| check | Review & fix | `check.jsonl` |
|
||
|
|
| debug | Fix specific issues | `debug.jsonl` |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Key Principle
|
||
|
|
|
||
|
|
> **Code-spec context is injected, not remembered.**
|
||
|
|
>
|
||
|
|
> The Task Workflow ensures agents receive relevant code-spec context automatically.
|
||
|
|
> This is more reliable than hoping the AI "remembers" conventions.
|