Add architecture specification and bump taskgraph to v0.0.2

Architecture docs for the open-tasks plugin covering the registry pattern
dispatch design, operation set, error handling, data flow, and constraints.
Includes four ADRs (registry pattern, no-cache policy, risk operation merge,
frontmatter normalization). The depends_on/dependsOn compatibility issue in
@alkdev/taskgraph is resolved in v0.0.2, so the dependency is bumped and
the docs reflect the fix.

AGENTS.md updated: canonical dependsOn field, dependents operation added,
hooks clarification, field naming note.
This commit is contained in:
2026-04-28 09:29:26 +00:00
parent fd59748a64
commit 307b8a2b54
8 changed files with 520 additions and 6 deletions

View File

@@ -52,7 +52,8 @@ Like open-memory, this plugin exposes **one tool** (`tasks`) with internal opera
tasks({tool: "help"}) → Show available operations
tasks({tool: "list"}) → List tasks in project
tasks({tool: "show", args: {id: "..."}}) → Show task details
tasks({tool: "deps", args: {id: "..."}}) → Show task dependencies
tasks({tool: "deps", args: {id: "..."}}) → Show task prerequisites
tasks({tool: "dependents", args: {id: "..."}}) → Show tasks that depend on a task
tasks({tool: "validate"}) → Validate all task files
... etc
```
@@ -61,7 +62,7 @@ tasks({tool: "validate"}) → Validate all task files
```
src/
├── index.ts # Plugin entry: hooks + tool registration
├── index.ts # Plugin entry: tool registration (no hooks in v1)
├── tools.ts # Tool definitions (tasks router)
├── registry.ts # Operation registry pattern (dispatch by tool name)
├── operations/ # Individual operation implementations
@@ -140,7 +141,7 @@ Tasks are markdown files in `tasks/` with YAML frontmatter:
id: auth-setup
name: Setup Authentication
status: pending
depends_on: []
dependsOn: []
scope: moderate
risk: medium
impact: component
@@ -165,6 +166,8 @@ Implement OAuth2 authentication with provider abstraction.
> Agent fills this on completion.
```
> **Note on field naming**: The `@alkdev/taskgraph` library uses camelCase (`dependsOn`, `scope`, `risk`, etc.) in its schema. The Rust CLI historically used snake_case (`depends_on`). As of `@alkdev/taskgraph` v0.0.2, the parser accepts both forms — but camelCase is the canonical form for new files.
## Build & Test Commands
```bash