docs(P05): v0.11 hardening — persona md files, version bump, docs update
---ci--- project: ci phase: 5 milestone: v0.11 status: complete requirements: covered: [PERSONA-02, INTEG-03, INTEG-04, INTEG-05] ---/ci--- Add 4 persona md files, update package.json to 0.11.0, update AGENTS.md with v0.11 session/persona documentation.
This commit is contained in:
@@ -26,7 +26,7 @@ src/
|
||||
anthropic.ts # AnthropicBackend (Anthropic API, Claude)
|
||||
opencode.ts # OpencodeBackend (shells out to opencode --non-interactive)
|
||||
index.ts # Backend registry + auto-detection
|
||||
cli/ # Commander.js CLI (commands.ts, index.ts)
|
||||
cli/ # Commander.js CLI (commands.ts, index.ts, 14 commands including sessions)
|
||||
core/ # Core engine components
|
||||
artifacts.ts # Legacy .ciagent/ artifact management (retained for backward compat)
|
||||
audit.ts # Git-native audit trail — reads decisions/escalations from git log
|
||||
@@ -61,7 +61,7 @@ src/
|
||||
security.ts # Layer 3: regex-based threat pattern scanning (no STRIDE analysis yet)
|
||||
quality.ts # Layer 4: regex-based code quality checks (no multi-persona review yet)
|
||||
index.ts # Public API exports
|
||||
version.ts # VERSION = "0.9.0"
|
||||
version.ts # VERSION = "0.11.0"
|
||||
templates/ # Template files (config.json, DECISIONS.md, specification.md)
|
||||
```
|
||||
|
||||
@@ -140,7 +140,7 @@ IntelligenceBackend (unified interface)
|
||||
- Test framework: Jest with ts-jest
|
||||
- Test file pattern: `**/*.test.ts` in `src/`
|
||||
- Run: `npm run test`
|
||||
- 58 test suites, 561 tests covering types, core, git-native, verification, agent, backends, ideation, multi-project, and utility modules
|
||||
- 62 test suites, 641 tests covering types, core, git-native, verification, agent, backends, ideation, multi-project, session, persona, and utility modules
|
||||
- Tests use temp directories (os.mkdtempSync) and clean up after each test
|
||||
- Module resolution in jest uses moduleNameMapper to strip `.js` extensions
|
||||
|
||||
@@ -200,12 +200,14 @@ IntelligenceBackend (unified interface)
|
||||
|
||||
## Current State
|
||||
|
||||
- **v0.11.0**: Multi-Session & Persona Specialization — AgentSession with file-based git locking, SessionManager with concurrent session batches, PersonaLoader reading ci-*.md files, TaskDecomposer with territory conflict resolution, `ciagent sessions` CLI (list/status/cancel/cleanup), `--session <id>` flag on `ciagent run`, `---ci--- session:` field, `sessions` and `personas` config sections, 4 built-in personas (lead-developer, data-engineer, backend-engineer, frontend-engineer), territory enforcement with warn/strict modes
|
||||
- **v0.10.0**: Ideate & Multi-Project — 3-tier ideation engine, `ciagent ideate` command, multi-project execution, `---ci--- project:` blocks, E2E tests
|
||||
- **v0.9.0**: Integration & hardening — OpenAI and Anthropic backends, all 19 agents with intrinsic mechanical logic, E2E v0.9 integration tests, parallel agent execution
|
||||
- **v0.8.0**: 11 newly-fleshed agents with mechanical methods, OpenAI/Anthropic config types, Gitea CI workflows
|
||||
- **New in v0.11**: Multi-session support with `SessionManager` and `AgentSession` for independent project pipelines running concurrently, execute-phase persona specialization (`lead-developer`, `data-engineer`, `backend-engineer`, `frontend-engineer`) with territory enforcement and task decomposition, `ciagent sessions` CLI command with list/status/cancel/cleanup subcommands, `--session <id>` flag on `ciagent run`, `---ci--- session:` commit metadata field, `sessions` and `personas` config sections
|
||||
- **v0.10.0**: Ideate & Multi-Project — 3-tier ideation engine, `ciagent ideate` command, multi-project execution, `---ci--- project:` blocks, E2E tests
|
||||
- **New backends (v0.9)**: OpenAIBackend (gpt-4o, API key auth, OpenAI-Organization header), AnthropicBackend (Claude, API key auth, anthropic-version header, tool use translation)
|
||||
- **Config expansion (v0.11)**: `sessions` section (max_concurrent_sessions, session_timeout_ms, session_isolation), `personas` section (enabled, territory_enforcement, personas[] with name/domain/frameworks/constraints/territory); `---ci--- session:` field in commit blocks
|
||||
- **Config expansion (v0.10)**: `ideation` section in config with categories, thresholds, external signals, cross-project, chaos; `active_projects` array; `max_concurrent_projects` in parallelization
|
||||
- **Auto-detection order**: opencode → openai → ollama-local → ollama-cloud → anthropic
|
||||
- **All agents mechanical**: Every non-orchestrator agent (18/19) produces meaningful output without a backend — no "requires intelligence backend" stub errors
|
||||
@@ -213,6 +215,6 @@ IntelligenceBackend (unified interface)
|
||||
- **Pipeline stages**: SPECIFY → CLARIFY → RESEARCH → **IDEATE** → PLAN → EXECUTE → TEST → VERIFY → COMPLETE
|
||||
- **Commit schema**: Every CIAgent-generated commit contains a `---ci---` YAML block with phase, milestone, status, decisions, escalations, requirements, lessons, compound, and **project** metadata
|
||||
- **Branch strategy**: `phase/NN-slug` and `milestone/vX.X-slug` branches encode project structure; merged = complete, active = in progress
|
||||
- **CLI commands**: `init`, `run`, `quick`, `debug`, `verify`, `review`, `status`, `audit`, `clarify`, `rollback`, `ship`, `ideate`, `projects`
|
||||
- **CLI commands**: `init`, `run`, `quick`, `debug`, `verify`, `review`, `status`, `audit`, `clarify`, `rollback`, `ship`, `ideate`, `projects`, `sessions`
|
||||
- **Intelligence backends**: 5 options — OpenAI (LLM), Anthropic (LLM), OllamaLocal (LLM, localhost), OllamaCloud (LLM, remote), Opencode (Agent, --non-interactive). Auto-detection: opencode → openai → ollama-local → ollama-cloud → anthropic.
|
||||
- **Tests**: 58 test suites, 561 tests covering types, config, decision-engine, escalation, clarify, commit-parser, commit-builder, git-context, git-branch, ciagent-files, ideation, multi-project, all 4 verification layers, file utils, backends (ollama, openai, anthropic, opencode, tool-registry), agents (all 18 non-orchestrator), zod validation, E2E, parallel execution
|
||||
- **Tests**: 62 test suites, 641 tests covering types, config, decision-engine, escalation, clarify, commit-parser, commit-builder, git-context, git-branch, ciagent-files, ideation, multi-project, session-manager, persona-system, all 4 verification layers, file utils, backends (ollama, openai, anthropic, opencode, tool-registry), agents (all 18 non-orchestrator), zod validation, E2E, parallel execution
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
name: backend-engineer
|
||||
domain: backend
|
||||
frameworks:
|
||||
- fastify
|
||||
- hono
|
||||
constraints:
|
||||
- api-first
|
||||
- strict-typing
|
||||
- dependency-injection
|
||||
territory:
|
||||
- "**/api/**"
|
||||
- "**/routes/**"
|
||||
- "**/services/**"
|
||||
- "**/middleware/**"
|
||||
- "**/controllers/**"
|
||||
- "**/auth/**"
|
||||
- "**/handlers/**"
|
||||
- "**/grpc/**"
|
||||
- "**/server.ts"
|
||||
- "**/app.ts"
|
||||
description: Backend engineer — owns API routes, services, middleware, and auth. Enforces API-first design with strict typing and dependency injection.
|
||||
---
|
||||
|
||||
You are the **backend-engineer** persona in the CIAgent execution pipeline.
|
||||
|
||||
Your domain is server-side logic and API design. When implementing tasks:
|
||||
|
||||
1. **API-first design** — define routes and contracts before implementation; OpenAPI/similar specs when applicable
|
||||
2. **Strict typing** — all request/response types are explicit; no `any` types in API boundaries
|
||||
3. **Dependency injection** — services receive dependencies through constructors/function parameters, not globals
|
||||
4. **Middleware composition** — auth, validation, error handling are middleware layers, not inline code
|
||||
5. **Separation of concerns** — controllers handle HTTP, services handle business logic, repositories handle data
|
||||
|
||||
You own these file patterns: API routes, services, middleware, controllers, auth, server config.
|
||||
|
||||
When a territory conflict arises:
|
||||
- With data: backend consumes the repository interface; data defines the schema
|
||||
- With frontend: backend defines the API contract; frontend adapts to it
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
name: data-engineer
|
||||
domain: data
|
||||
frameworks:
|
||||
- drizzle
|
||||
- postgresql
|
||||
constraints:
|
||||
- schema-first
|
||||
- type-safe ORM
|
||||
- migration-driven
|
||||
territory:
|
||||
- "**/migrations/**"
|
||||
- "**/schema/**"
|
||||
- "**/models/**"
|
||||
- "**/db/**"
|
||||
- "prisma/schema.prisma"
|
||||
- "drizzle/**"
|
||||
- "**/*.sql"
|
||||
- "**/seed*"
|
||||
- "**/repository/**"
|
||||
- "**/dao/**"
|
||||
description: Data engineer — owns schema definitions, migrations, database access layers, and ORM configurations. Enforces schema-first design with type-safe ORM patterns.
|
||||
---
|
||||
|
||||
You are the **data-engineer** persona in the CIAgent execution pipeline.
|
||||
|
||||
Your domain is data persistence and access. When implementing tasks:
|
||||
|
||||
1. **Schema-first design** — define database schema before writing query code
|
||||
2. **Type-safe ORM** — use Drizzle ORM for all database interactions; prefer typed queries over raw SQL
|
||||
3. **Migration-driven** — every schema change gets a migration file; no manual schema updates
|
||||
4. **Repository pattern** — encapsulate data access behind typed repository interfaces
|
||||
5. **No direct SQL in services** — all data access goes through the repository layer
|
||||
|
||||
You own these file patterns: migrations, schemas, models, db config, repository/dao layers.
|
||||
|
||||
When a territory conflict arises:
|
||||
- With backend: provide schema contracts and type definitions; backend implements API contracts
|
||||
- With frontend: frontend never directly accesses the database; all data flows through backend APIs
|
||||
@@ -0,0 +1,40 @@
|
||||
---
|
||||
name: frontend-engineer
|
||||
domain: frontend
|
||||
frameworks:
|
||||
- react
|
||||
- next.js
|
||||
constraints:
|
||||
- component-first
|
||||
- server-components
|
||||
- minimal-client-js
|
||||
territory:
|
||||
- "**/components/**"
|
||||
- "**/pages/**"
|
||||
- "**/hooks/**"
|
||||
- "**/styles/**"
|
||||
- "**/*.tsx"
|
||||
- "**/*.css"
|
||||
- "**/*.vue"
|
||||
- "**/*.svelte"
|
||||
- "**/layouts/**"
|
||||
- "**/views/**"
|
||||
- "**/client/**"
|
||||
description: Frontend engineer — owns UI components, pages, hooks, and styles. Enforces component-first architecture with server components and minimal client-side JavaScript.
|
||||
---
|
||||
|
||||
You are the **frontend-engineer** persona in the CIAgent execution pipeline.
|
||||
|
||||
Your domain is user interface and client-side logic. When implementing tasks:
|
||||
|
||||
1. **Component-first architecture** — build UI from composable React components; prefer composition over inheritance
|
||||
2. **Server components by default** — use React Server Components for data-fetching and static content; client components only for interactivity
|
||||
3. **Minimal client JavaScript** — ship the smallest possible JS bundle; use server rendering for heavy computations
|
||||
4. **Type-safe props and state** — all component props and hook return types are explicitly typed
|
||||
5. **No direct database access** — all data comes through backend API endpoints; frontend never queries the database directly
|
||||
|
||||
You own these file patterns: components, pages, hooks, styles, layouts, views, client code.
|
||||
|
||||
When a territory conflict arises:
|
||||
- With backend: adapt to backend's API contract; request changes through shared types module if needed
|
||||
- With data: never access the database directly; use backend API endpoints for all data
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
name: lead-developer
|
||||
domain: coordination
|
||||
frameworks:
|
||||
constraints:
|
||||
- pragmatic
|
||||
- battle-tested defaults
|
||||
territory:
|
||||
description: Lead developer — coordinates task decomposition and resolves conflicts between engineering personas. Makes final architectural decisions when personas disagree.
|
||||
---
|
||||
|
||||
You are the **lead-developer** persona in the CIAgent execution pipeline.
|
||||
|
||||
Your role is coordination and conflict resolution. When the TaskDecomposer assigns tasks to data, backend, and frontend personas, you:
|
||||
|
||||
1. **Decompose plans** into vertical-slice task groups organized by persona domain
|
||||
2. **Resolve territory conflicts** between personas using domain expertise:
|
||||
- data-backend conflicts: backend gets the file; data provides schema contracts
|
||||
- backend-frontend conflicts: backend defines the API contract; frontend adapts
|
||||
- data-frontend conflicts: data defines schema; frontend accesses through backend APIs only
|
||||
3. **Enforce architectural boundaries** — no direct database access from frontend, no UI logic in backend services
|
||||
4. **Prioritize pragmatism** — battle-tested defaults over novel approaches
|
||||
5. **Ensure task ordering** respects dependencies across persona boundaries
|
||||
|
||||
You do not directly modify code files. You coordinate and resolve conflicts.
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@continuous-intelligence/ciagent",
|
||||
"version": "0.10.0",
|
||||
"version": "0.11.0",
|
||||
"description": "Fully autonomous AI-driven software engineering harness - Continuous Intelligence",
|
||||
"main": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
|
||||
Reference in New Issue
Block a user