feat(goals): add domain/repo goal tracking and update_workstream MCP tool
- Migration c5d6e7f8a9b0: domain_goals and repo_goals tables, repo_goal_id FK on workstreams - DomainGoal: one active per domain (partial unique index), status active/archived/superseded - RepoGoal: integer priority, status active/paused/completed/archived, optional domain_goal_id link - WorkstreamUpdate schema and router extended with repo_goal_id and repo_goal_id filter - 6 new MCP goal tools: create_domain_goal, get_domain_goals, activate_domain_goal, create_repo_goal, get_repo_goals, update_repo_goal - update_workstream MCP tool: patch any subset of workstream fields (title, description, owner, due_date, repo_goal_id, status) - get_domain_summary extended with goal_guidance (needs_workplan, alignment_warnings) signals - Dashboard goals.md page and docs/goals.md reference page - CLAUDE.md template updated to act on goal_guidance signals at session start - CUST-WP-0010 workplan for this feature Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
77
workplans/CUST-WP-0010-domain-and-repo-goals.md
Normal file
77
workplans/CUST-WP-0010-domain-and-repo-goals.md
Normal file
@@ -0,0 +1,77 @@
|
||||
---
|
||||
id: CUST-WP-0010
|
||||
type: workstream
|
||||
title: Domain and Repository Goals
|
||||
domain: custodian
|
||||
status: completed
|
||||
owner: custodian
|
||||
topic_slug: the-custodian
|
||||
state_hub_workstream_id: ""
|
||||
created: 2026-03-08
|
||||
updated: 2026-03-08
|
||||
state_hub_workstream_id: "def8455a-9de4-4891-a15a-5b09ca98ab1e"
|
||||
---
|
||||
|
||||
# Domain and Repository Goals
|
||||
|
||||
## Purpose
|
||||
|
||||
Capture strategic intent at two levels — domain and repository — as first-class
|
||||
entities in the State Hub. Domain goals express the high-level direction for a
|
||||
domain; repository goals refine that into actionable targets for a specific repo.
|
||||
Workstreams can be linked to a repo goal so the goal hierarchy is visible when
|
||||
planning and reviewing progress.
|
||||
|
||||
## Schema
|
||||
|
||||
### `domain_goals`
|
||||
- One active goal per domain at a time (partial unique index enforced by DB)
|
||||
- `status`: active | archived | superseded
|
||||
- Activating a new goal auto-supersedes the previous active one
|
||||
|
||||
### `repo_goals`
|
||||
- Multiple active goals per repo, ordered by `priority` (integer, lower = higher)
|
||||
- Optional FK to `domain_goal_id` — traces which domain goal drove this repo goal
|
||||
- `status`: active | paused | completed | archived
|
||||
|
||||
### `workstreams.repo_goal_id`
|
||||
- Nullable FK added so workstreams can be tagged to a specific repo goal
|
||||
|
||||
## MCP Tools Added
|
||||
|
||||
- `create_domain_goal(domain_slug, title, description)`
|
||||
- `get_domain_goals(domain_slug, status?)`
|
||||
- `activate_domain_goal(goal_id)`
|
||||
- `create_repo_goal(repo_slug, title, description, domain_goal_id?, priority?)`
|
||||
- `get_repo_goals(repo_slug, status?)`
|
||||
- `update_repo_goal(goal_id, ...)`
|
||||
|
||||
## Seed Data
|
||||
|
||||
**railiance domain goal** (active):
|
||||
> "Improve the railiance repositories so that I can securely set up a three
|
||||
> phoenix server setup to provide for the coulomb infrastructure with proper
|
||||
> IT-Security, Backup and Update management in a fully automated way."
|
||||
|
||||
**railiance-bootstrap repo goal** (active, priority 10):
|
||||
> "Bootstrap a new server securely at hosteurope that can function as the
|
||||
> second kubernetes host for the railiance setup. Focus on security and single
|
||||
> server; defer automated provisioning (railiance-hosts) for now."
|
||||
|
||||
## Tasks
|
||||
|
||||
### Implement Goals schema, API, and MCP tools
|
||||
```task
|
||||
id: T01
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "051fd9e1-d15c-4665-adc9-704c4d2b24ea"
|
||||
```
|
||||
|
||||
### Seed railiance example goals
|
||||
```task
|
||||
id: T02
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "103b46d9-6241-4ef1-9063-054478900b5c"
|
||||
```
|
||||
Reference in New Issue
Block a user