BMAD-METHOD/.claude/orchestrator/context-management.md

2.9 KiB

Context Management System

Session Initialization

When starting a new project:

  1. Create session ID:
{
  "session_id": "proj_[timestamp]_[random]",
  "created_at": "[ISO timestamp]",
  "project_name": "[from user request]",
  "workflow": "[selected workflow]",
  "status": "active"
}
  1. Initialize context variables:
{
  "variables": {
    "project_name": "",
    "project_type": "",
    "tech_stack": {
      "frontend": "",
      "backend": "",
      "database": ""
    },
    "features": [],
    "requirements": [],
    "constraints": []
  }
}

Context Building Rules

From Specification

Extract and store:

  • Project name → variables.project_name
  • Technology choices → variables.tech_stack
  • Feature list → variables.features
  • Requirements → variables.requirements

Between Steps

Pass forward:

  • All variables from previous steps
  • References to created artifacts
  • Decisions made by agents
  • Identified risks and constraints

Context Usage

When agent needs context:

Current Context:
- Project: [project_name]
- Step: [current_step] of [total_steps]
- Previous Outputs:
  - Step 1: [artifact_name]
  - Step 2: [artifact_name]
- Key Decisions:
  - Frontend: [tech_choice]
  - Backend: [tech_choice]
  - Database: [tech_choice]

Artifact Management

Naming Convention

[step_number]-[agent]-[artifact_type].[ext]
Examples:
- 01-analyst-project-brief.md
- 02-pm-prd.md
- 03-architect-architecture.md
- 04-developer-components.tsx

Storage Structure

.claude/context/artifacts/
├── session_[id]/
│   ├── 01-analyst-project-brief.md
│   ├── 02-pm-prd.md
│   ├── 03-architect-architecture.md
│   └── ...

Artifact References

In subsequent steps, reference as:

Referring to the Project Brief (Step 1)...
Based on the PRD (Step 2)...
Following the Architecture (Step 3)...

State Persistence

After Each Step

Update session.json:

{
  "last_updated": "[timestamp]",
  "current_step": N,
  "steps_completed": [1, 2, 3],
  "steps_remaining": [4, 5, 6],
  "artifacts_created": [
    {
      "step": 1,
      "agent": "analyst",
      "file": "project-brief.md",
      "created_at": "[timestamp]"
    }
  ]
}

Recovery Mechanism

If interrupted:

  1. Check session.json for last completed step
  2. Load all artifacts from completed steps
  3. Rebuild context from saved state
  4. Resume from next step

Variable Extraction

Automatic Extraction

From user specification, extract:

  • Project Name: First noun phrase after "create/build"
  • Type: Based on keywords (app, website, API, service)
  • Features: Bullet points or "with X, Y, Z"
  • Tech Stack: Mentioned technologies

Template Variables

Available in all templates:

  • [PROJECT_NAME]
  • [PROJECT_TYPE]
  • [FRONTEND_TECH]
  • [BACKEND_TECH]
  • [DATABASE]
  • [CURRENT_DATE]
  • [STEP_NUMBER]
  • [TOTAL_STEPS]