Implement ACTIVITY-WP-0022/0023: safe sink default and gap closures
All checks were successful
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 3s
Build and Publish Container Image / build-and-push (push) Successful in 28s

Default ISSUE_SINK_TYPE to state-hub (no silent Forgejo issues), hard-fail
prune apply without live-images protection, refresh-live-images script,
disable TaskExecutor stub by default, and document consumer/sink contracts.
This commit is contained in:
tegwick 2026-07-21 21:40:08 +02:00
parent 5c7a90ce7c
commit 4f5399df84
19 changed files with 525 additions and 155 deletions

View file

@ -1,7 +1,7 @@
---
domain: capabilities
repo: activity-core
updated: "2026-05-14"
updated: "2026-07-21"
---
# INTENT
@ -63,10 +63,14 @@ It is an event loop governed by declarative rules and LLM instructions:
is needed to decide what tasks are appropriate. Both are defined as markdown
files, co-located with their intent and debugging guidance (see ACT-ADR-002,
ACT-ADR-003).
- **Task emission**: the output of every activation is a set of task creation
requests sent to issue-core via a task emission adapter. activity-core records
the spawn event (what was created, when, referencing the issue-core task ID)
as an audit trail — not as the authoritative task record.
- **Task / outcome emission**: activations emit task specs and/or reports via a
configured **sink**. Internal fleet findings default to State Hub progress
(`activity_task_spawn`) so they do not silently create Forgejo issues
(ACTIVITY-WP-0022). Optional `ISSUE_SINK_TYPE=rest` projects to issue-core
when an external tracker issue is intentionally desired. activity-core
records the spawn event as an audit trail — not as the authoritative task
record. Downstream **executors** (per-repo workers, agent-harness) perform
the work.
---
@ -74,7 +78,7 @@ It is an event loop governed by declarative rules and LLM instructions:
| Concern | Owner |
|---|---|
| Task lifecycle (create, assign, track, close) | issue-core |
| Task lifecycle (create, assign, track, close) | issue-core / work-record connectors (not default for internal findings) |
| Project and initiative management | project-core (future) |
| Repository capability profiling | repo-scoping |
| Cross-domain coordination state | state hub |
@ -123,7 +127,12 @@ and auditable.
**No task state ownership.** activity-core holds a spawn audit trail, not task
state. The moment it starts tracking whether tasks are complete, blocked, or
re-assigned, it has become a task database — and that is issue-core's job.
re-assigned, it has become a task database — that belongs to issue-core or
fleet work-record systems, not here.
**Safe sinks for internal findings.** Automated internal coordination must not
default to silent Forgejo/Gitea issues. Prefer State Hub progress / work-record
intake; reserve issue-core REST for explicit external projection.
**Publisher-declared event governance.** Producers of org events register their
event types by committing definition files. Curator review is a configurable