|
| 1 | +# Core-Workspace Split: Portable Agent Kit Structure |
| 2 | + |
| 3 | +- Owner: @jaruesink / #SpecArchitect |
| 4 | +- Last Updated: 2025-10-01 |
| 5 | +- Status: Draft |
| 6 | +- Related Feature Hub: `.devagent/features/2025-10-01_core-workspace-split/` |
| 7 | +- Stakeholders: @jaruesink (DRI, Approval) |
| 8 | +- Related Clauses: C2 (Chronological Feature Artifacts), C4 (Tool-Agnostic Design) |
| 9 | + |
| 10 | +## Summary |
| 11 | + |
| 12 | +Restructure the `.devagent/` directory to separate portable, reusable agent definitions and templates (`core/`) from project-specific working artifacts (`workspace/`). This enables teams to copy a proven agent kit into new projects instantly while maintaining clean boundaries between template logic and project state. The change eliminates current ambiguity around what files are "framework" vs. "project data" and supports the mission goal of making DevAgent adoption friction-free across Lambda Curry projects. |
| 13 | + |
| 14 | +## Context & Problem |
| 15 | + |
| 16 | +**Current State:** |
| 17 | +The `.devagent/` directory mixes reusable components (agents, templates, AGENTS.md) with project-specific state (features, memory, product mission). When starting a new project, developers must manually identify which files to copy, which to customize, and which to ignore. This friction slows adoption and creates maintenance drift when agent definitions are updated—teams must manually sync changes across projects. |
| 18 | + |
| 19 | +**User Pain:** |
| 20 | +- New project setup requires careful file selection and risks missing core agent definitions |
| 21 | +- Agent updates must be manually propagated to each project using DevAgent |
| 22 | +- Unclear which artifacts should be version-controlled vs. gitignored |
| 23 | +- Onboarding teammates requires explaining the implicit boundary between "kit" and "project" |
| 24 | + |
| 25 | +**Business Trigger:** |
| 26 | +The mission targets "30 days: Daily coding in DevAgent prompts feels natural for the founders, and at least one additional teammate adopts the workflow." Current structure friction delays that adoption. Solving this unblocks faster experimentation across Lambda Curry's client projects. |
| 27 | + |
| 28 | +## Objectives & Success Metrics |
| 29 | + |
| 30 | +**Product Outcomes:** |
| 31 | +1. Developers can initialize a new project with DevAgent agents in under 5 minutes |
| 32 | +2. Agent definition updates propagate to all projects without manual file hunting |
| 33 | +3. Team members immediately understand what's portable vs. project-specific |
| 34 | + |
| 35 | +**Business Outcomes:** |
| 36 | +- Accelerates the "30-day adoption" mission metric by removing setup friction |
| 37 | +- Increases likelihood of cross-project agent reuse, compounding velocity gains |
| 38 | + |
| 39 | +**Experience Outcomes:** |
| 40 | +- Onboarding docs shrink from "which files to copy" to "copy `core/`, initialize `workspace/`" |
| 41 | +- Clear mental model: `core/` = readonly template kit, `workspace/` = living project context |
| 42 | + |
| 43 | +**Metrics:** |
| 44 | +- **Baseline:** Current setup requires ~15-20 minutes and 3+ rounds of clarification |
| 45 | +- **Target:** Setup in under 5 minutes with zero clarification questions |
| 46 | +- **Signal:** At least two Lambda Curry projects adopt the new structure within 30 days |
| 47 | + |
| 48 | +## Users & Insights |
| 49 | + |
| 50 | +**Target Users:** |
| 51 | +1. **Lambda Curry developers** starting new client projects or internal tools |
| 52 | +2. **Engineering managers** introducing AI workflows to teams with mixed AI proficiency |
| 53 | +3. **Open-source contributors** (future) who want to fork DevAgent for their own org |
| 54 | + |
| 55 | +**Key Insights:** |
| 56 | +- Developers expect "framework" code to be clearly separated from "application" code (standard pattern in Rails, Django, Next.js) |
| 57 | +- Teams value incremental adoption—ability to copy agents selectively without carrying unused scaffolding |
| 58 | +- Clear directory naming ("core" vs. "workspace") reduces cognitive load during setup |
| 59 | + |
| 60 | +**Demand Signals:** |
| 61 | +- Initial DevAgent usage revealed confusion about which files to edit vs. preserve |
| 62 | +- Current conversation explicitly requested "a folder I can copy and paste into any project" |
| 63 | + |
| 64 | +## Solution Principles |
| 65 | + |
| 66 | +1. **Maximize portability:** `core/` must work in any project without modification |
| 67 | +2. **Preserve tool-agnosticism:** No vendor lock-in (aligns with C4) |
| 68 | +3. **Support incremental adoption:** Projects can use a subset of agents without breaking references |
| 69 | +4. **Maintain backwards compatibility during migration:** Existing `.devagent/` projects should continue working |
| 70 | +5. **Optimize for onboarding clarity:** New developers should immediately grasp the structure |
| 71 | + |
| 72 | +## Scope Definition |
| 73 | + |
| 74 | +### In Scope |
| 75 | +- Reorganize `.devagent/` into `core/` and `workspace/` subdirectories |
| 76 | +- Update all agent instruction sheets to reference new paths (`.devagent/core/templates/...`, `.devagent/workspace/features/...`) |
| 77 | +- Update AGENTS.md and create a new `core/README.md` with setup instructions |
| 78 | +- Create a migration guide for existing DevAgent projects |
| 79 | +- Test the new structure against at least one real Lambda Curry project |
| 80 | + |
| 81 | +### Out of Scope / Future |
| 82 | +- Automated sync tools to pull `core/` updates from a central repo (future: DevAgent CLI) |
| 83 | +- Versioning or release tagging for `core/` kit snapshots (defer until multi-project usage confirms need) |
| 84 | +- Tool-specific implementations under `.devagent/tools/` (separate future work per C4) |
| 85 | +- Migration of existing feature hubs' historical artifacts (preserve in place, new work uses new paths) |
| 86 | + |
| 87 | +## Functional Narrative |
| 88 | + |
| 89 | +### Flow 1: Initialize DevAgent in a New Project |
| 90 | + |
| 91 | +**Trigger:** Developer starts a greenfield project or wants to add DevAgent to an existing codebase |
| 92 | + |
| 93 | +**Experience Narrative:** |
| 94 | +1. Developer copies `.devagent/core/` directory from the DevAgent repository into their project root |
| 95 | +2. Developer runs initialization (manual steps or future script) to create `.devagent/workspace/` skeleton |
| 96 | +3. Developer customizes `.devagent/workspace/product/mission.md` with project-specific mission |
| 97 | +4. Developer invokes first agent (e.g., `#ProductMissionPartner`) using standard syntax—no path customization required |
| 98 | + |
| 99 | +**Acceptance Criteria:** |
| 100 | +- [ ] `core/` directory contains all agent definitions, templates, and AGENTS.md |
| 101 | +- [ ] Copying `core/` alone allows immediate agent invocation without errors |
| 102 | +- [ ] `workspace/` skeleton includes empty directories for `product/`, `memory/`, `features/`, `research/` |
| 103 | +- [ ] Setup completes in under 5 minutes for a developer unfamiliar with DevAgent |
| 104 | + |
| 105 | +### Flow 2: Update Agent Definitions Across Projects |
| 106 | + |
| 107 | +**Trigger:** Agent logic improves in the DevAgent repository and teams want to adopt updates |
| 108 | + |
| 109 | +**Experience Narrative:** |
| 110 | +1. Developer pulls latest DevAgent repository changes |
| 111 | +2. Developer copies updated `core/` directory into their project, overwriting existing `core/` |
| 112 | +3. All agent references continue working because `workspace/` paths remain unchanged |
| 113 | +4. Developer reviews changelog in `core/README.md` to understand what changed |
| 114 | + |
| 115 | +**Acceptance Criteria:** |
| 116 | +- [ ] Overwriting `core/` never touches `workspace/` artifacts |
| 117 | +- [ ] Agent path references are stable—no per-project customization needed |
| 118 | +- [ ] `core/README.md` includes version/changelog guidance |
| 119 | + |
| 120 | +### Flow 3: Agent Executes Feature Work in Restructured Environment |
| 121 | + |
| 122 | +**Trigger:** Developer invokes `#SpecArchitect` to draft a spec |
| 123 | + |
| 124 | +**Experience Narrative:** |
| 125 | +1. Developer references feature context: `.devagent/workspace/features/2025-10-01_example/` |
| 126 | +2. Agent reads spec template from: `.devagent/core/templates/spec-document-template.md` |
| 127 | +3. Agent writes output to: `.devagent/workspace/features/2025-10-01_example/spec/2025-10-01_spec.md` |
| 128 | +4. All references and links work as expected—no manual path corrections needed |
| 129 | + |
| 130 | +**Acceptance Criteria:** |
| 131 | +- [ ] Agent instruction sheets correctly reference `.devagent/core/...` for templates |
| 132 | +- [ ] Agent instruction sheets correctly reference `.devagent/workspace/...` for working artifacts |
| 133 | +- [ ] No hardcoded assumptions about directory depth or project name |
| 134 | +- [ ] Agent workflows function identically to pre-restructure behavior |
| 135 | + |
| 136 | +### Flow 4: Migrate Existing DevAgent Project |
| 137 | + |
| 138 | +**Trigger:** Existing DevAgent project wants to adopt new structure |
| 139 | + |
| 140 | +**Experience Narrative:** |
| 141 | +1. Developer reads migration guide in `core/README.md` |
| 142 | +2. Developer creates `core/` and `workspace/` directories |
| 143 | +3. Developer moves agents and templates to `core/`, features and memory to `workspace/` |
| 144 | +4. Developer updates custom agent extensions (if any) to reference new paths |
| 145 | +5. Developer validates by running one agent workflow end-to-end |
| 146 | + |
| 147 | +**Acceptance Criteria:** |
| 148 | +- [ ] Migration guide provides file-by-file move instructions |
| 149 | +- [ ] Migration preserves all existing feature hub history and decision logs |
| 150 | +- [ ] Agent invocations work after migration without syntax changes |
| 151 | +- [ ] Migration time under 15 minutes for a standard DevAgent setup |
| 152 | + |
| 153 | +## Technical Notes & Dependencies |
| 154 | + |
| 155 | +### Directory Structure Detail |
| 156 | + |
| 157 | +``` |
| 158 | +.devagent/ |
| 159 | +├── core/ # PORTABLE - Copy to any project |
| 160 | +│ ├── agents/ # Agent instruction sheets |
| 161 | +│ │ ├── ProductMissionPartner.md |
| 162 | +│ │ ├── FeatureClarifyAgent.md |
| 163 | +│ │ ├── FeatureBrainstormAgent.md |
| 164 | +│ │ ├── ResearchAgent.md |
| 165 | +│ │ ├── SpecArchitect.md |
| 166 | +│ │ ├── TaskPlanner.md |
| 167 | +│ │ ├── TaskExecutor.md |
| 168 | +│ │ ├── TechStackAgent.md |
| 169 | +│ │ ├── AgentBuilder.md |
| 170 | +│ │ └── codegen/ |
| 171 | +│ │ └── CodegenBackgroundAgent.md |
| 172 | +│ ├── templates/ # Reusable document templates |
| 173 | +│ │ ├── agent-brief-template.md |
| 174 | +│ │ ├── brainstorm-packet-template.md |
| 175 | +│ │ ├── clarification-packet-template.md |
| 176 | +│ │ ├── clarification-questions-framework.md |
| 177 | +│ │ ├── constitution-template.md |
| 178 | +│ │ ├── research-packet-template.md |
| 179 | +│ │ ├── spec-document-template.md |
| 180 | +│ │ ├── task-plan-template.md |
| 181 | +│ │ ├── task-prompt-template.md |
| 182 | +│ │ └── tech-stack-template.md |
| 183 | +│ ├── AGENTS.md # Agent roster documentation |
| 184 | +│ └── README.md # Core kit usage & setup instructions |
| 185 | +│ |
| 186 | +└── workspace/ # PROJECT-SPECIFIC - Changes per project |
| 187 | + ├── product/ # Product mission & strategy |
| 188 | + │ ├── mission.md |
| 189 | + │ ├── roadmap.md |
| 190 | + │ └── guiding-questions.md |
| 191 | + ├── memory/ # Project constitution & decisions |
| 192 | + │ ├── constitution.md |
| 193 | + │ ├── decision-journal.md |
| 194 | + │ ├── tech-stack.md |
| 195 | + │ ├── overview.md |
| 196 | + │ └── _archive/ # Historical constitution snapshots |
| 197 | + ├── features/ # Feature hubs with research & specs |
| 198 | + │ ├── README.md |
| 199 | + │ ├── _template/ |
| 200 | + │ │ └── README.md |
| 201 | + │ └── YYYY-MM-DD_feature-slug/ |
| 202 | + │ ├── README.md |
| 203 | + │ ├── research/ |
| 204 | + │ │ └── YYYY-MM-DD_topic.md |
| 205 | + │ └── spec/ |
| 206 | + │ └── YYYY-MM-DD_spec.md |
| 207 | + ├── research/ # Cross-cutting research |
| 208 | + │ └── YYYY-MM-DD_topic.md |
| 209 | + └── tasks/ # Task execution logs (future) |
| 210 | + └── YYYY-MM-DD_task-id.md |
| 211 | +``` |
| 212 | + |
| 213 | +### Path Reference Updates |
| 214 | + |
| 215 | +All agent instruction sheets must be updated to use new path conventions: |
| 216 | + |
| 217 | +**Template References (read-only):** |
| 218 | +- Old: `.devagent/templates/spec-document-template.md` |
| 219 | +- New: `.devagent/core/templates/spec-document-template.md` |
| 220 | + |
| 221 | +**Working Artifact References:** |
| 222 | +- Old: `.devagent/features/YYYY-MM-DD_slug/` |
| 223 | +- New: `.devagent/workspace/features/YYYY-MM-DD_slug/` |
| 224 | + |
| 225 | +**Agent References:** |
| 226 | +- Old: See `.devagent/agents/ResearchAgent.md` |
| 227 | +- New: See `.devagent/core/agents/ResearchAgent.md` |
| 228 | + |
| 229 | +### Platform Considerations |
| 230 | + |
| 231 | +- **Version Control:** `core/` should be tracked; `workspace/` tracking is project-dependent |
| 232 | +- **Portability:** All paths must use relative references from `.devagent/` root |
| 233 | +- **OS Compatibility:** Use forward slashes in documentation; scripts should detect OS |
| 234 | + |
| 235 | +### Data Migration |
| 236 | + |
| 237 | +Existing DevAgent projects have artifacts at legacy paths. Migration options: |
| 238 | + |
| 239 | +1. **Big-bang reorg:** Move files atomically, update all references at once |
| 240 | +2. **Symlink bridge:** Create symlinks at old paths pointing to new locations during transition |
| 241 | +3. **Dual-path support:** Agents check both old and new paths with deprecation warnings |
| 242 | + |
| 243 | +**Recommendation:** Big-bang reorg for DevAgent repo itself (dogfooding), symlink bridge for external adopters. |
| 244 | + |
| 245 | +## Risks & Open Questions |
| 246 | + |
| 247 | +| Item | Type | Owner | Mitigation / Next Step | Due | |
| 248 | +| --- | --- | --- | --- | --- | |
| 249 | +| Existing projects break if they pull updates without migrating | Risk | @jaruesink | Provide clear migration guide + changelog in README | Before merge | |
| 250 | +| Agents reference old paths in examples or error messages | Risk | @jaruesink | Audit all agent `.md` files for hardcoded paths | During implementation | |
| 251 | +| Teams may want different `workspace/` layouts per project type | Question | @jaruesink | Start with opinionated default, document customization in FAQ | Post-launch | |
| 252 | +| Should `core/README.md` include setup script or just manual steps? | Question | @jaruesink | Manual steps for v1, script if 3+ projects adopt | Post-validation | |
| 253 | +| Do we version `core/` (e.g., `core-v1.0/`) or rely on git tags? | Question | @jaruesink | Defer until multi-project usage reveals need | Post-validation | |
| 254 | + |
| 255 | +## Delivery Plan |
| 256 | + |
| 257 | +### Milestones |
| 258 | + |
| 259 | +**Phase 1: Structure & Documentation (Week 1)** |
| 260 | +- Create `core/` and `workspace/` directories in DevAgent repo |
| 261 | +- Move files to new locations |
| 262 | +- Update `AGENTS.md` and create `core/README.md` with setup guide |
| 263 | +- Draft migration guide |
| 264 | + |
| 265 | +**Phase 2: Agent Reference Updates (Week 1)** |
| 266 | +- Audit all agent instruction sheets for path references |
| 267 | +- Update agent `.md` files to use new paths |
| 268 | +- Update templates to reference new structure |
| 269 | +- Test agent invocations end-to-end |
| 270 | + |
| 271 | +**Phase 3: Validation & Documentation (Week 2)** |
| 272 | +- Apply new structure to one Lambda Curry project |
| 273 | +- Time setup process and iterate on friction points |
| 274 | +- Document edge cases and FAQs |
| 275 | +- Update constitution (C2) if needed |
| 276 | + |
| 277 | +**Phase 4: Rollout & Iteration (Week 3+)** |
| 278 | +- Merge changes to DevAgent main branch |
| 279 | +- Announce to Lambda Curry team with migration guide |
| 280 | +- Support early adopters through migration |
| 281 | +- Collect feedback for v2 improvements |
| 282 | + |
| 283 | +### Review Gates |
| 284 | + |
| 285 | +- **Pre-implementation:** Design review with @jaruesink (this spec) |
| 286 | +- **Post-migration:** Validation with one real project (sign-off: successful agent run) |
| 287 | +- **Pre-announce:** Documentation completeness check (setup guide, migration guide, FAQ) |
| 288 | + |
| 289 | +### Analytics & QA Requirements |
| 290 | + |
| 291 | +**Validation Signals:** |
| 292 | +- Setup time measured via stopwatch during test runs |
| 293 | +- Zero clarification questions needed during setup by unfamiliar developer |
| 294 | +- All agents execute successfully in migrated structure |
| 295 | +- At least one Lambda Curry project adopts within 30 days |
| 296 | + |
| 297 | +**Rollback Plan:** |
| 298 | +If validation fails, revert to flat `.devagent/` structure and document lessons learned in feature hub. |
| 299 | + |
| 300 | +## Approval & Ops Readiness |
| 301 | + |
| 302 | +### Required Approvals |
| 303 | +- [x] Product: @jaruesink (aligned with mission metric) |
| 304 | +- [ ] Implementation: @jaruesink (sign-off after validation phase) |
| 305 | + |
| 306 | +### Operational Checklist |
| 307 | +- [ ] Update onboarding documentation with new structure |
| 308 | +- [ ] Add setup instructions to DevAgent repository README |
| 309 | +- [ ] Create migration guide for existing projects |
| 310 | +- [ ] Announce change in Lambda Curry team channel |
| 311 | +- [ ] Monitor adoption and address blockers within 48 hours |
| 312 | + |
| 313 | +## Appendices & References |
| 314 | + |
| 315 | +### Related Artifacts |
| 316 | +- Mission: `.devagent/workspace/product/mission.md` (30-day adoption metric) |
| 317 | +- Constitution: Clause C2 (Chronological Feature Artifacts), C4 (Tool-Agnostic Design) |
| 318 | +- Agent Roster: `.devagent/core/AGENTS.md` |
| 319 | +- Feature Hub: `.devagent/workspace/features/2025-10-01_core-workspace-split/` |
| 320 | + |
| 321 | +### Precedent Research |
| 322 | +- GitHub Spec Kit uses similar separation of `docs/` templates and project-specific content |
| 323 | +- Rails convention: `lib/` (framework) vs. `app/` (project) |
| 324 | +- Next.js: `node_modules/` (portable) vs. `src/` (project-specific) |
| 325 | + |
| 326 | +## Change Log |
| 327 | + |
| 328 | +| Date | Change | Author | |
| 329 | +| --- | --- | --- | |
| 330 | +| 2025-10-01 | Initial spec draft | #SpecArchitect / @jaruesink | |
| 331 | + |
| 332 | +--- |
| 333 | + |
| 334 | +**Related Clauses:** C2, C4 |
0 commit comments