A task factory based on temporal
Find a file
tegwick b4a7a84211
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 5s
Build and Publish Container Image / build-and-push (push) Successful in 39s
Bind multiple queue worker identities, one token each (WP-0039-T01)
ACTIVITY_CORE_WORKERS maps worker_id=ENV_NAME, where each token env must be
ACTIVITY_CORE_WORKER_TOKEN[_SUFFIX]. Without the map, the legacy single pair
behaves exactly as before. Duplicate identities, missing or shared tokens, a
token equal to the operator token, and an unlisted legacy identity all fail
worker mutations closed with 503. Operator/SSO reads keep working.

Declare per-identity OpenBao paths and an ExternalSecret, not yet applied.
The policy, seeding and rollout are waiting tasks T02-T04, answering
secrets-engine SECRETS-WP-0009-T03 and SECRETS-WP-0011-T04.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 151606@bnt-lap001
Assistant-Session: 3c0a4ad5-bb8b-4bf7-b9f0-fa5f29204e48
2026-09-23 17:38:41 +02:00
.claude/rules docs: realign WP-0029 and boundaries with canon and nexus owners 2026-08-18 10:27:29 +02:00
.forgejo/workflows Add Forgejo CI smoke and image workflow (tier 3 T04) 2026-07-06 17:11:17 +02:00
.kaizen chore(kaizen): demote coach/optimization to weekly operate cadence 2026-06-19 11:32:36 +02:00
activity-definitions Add disabled hfact-glas-metered-proof definition 2026-09-23 17:00:52 +02:00
agents Add kaizen agent project assets 2026-06-18 15:14:20 +02:00
docs Bind multiple queue worker identities, one token each (WP-0039-T01) 2026-09-23 17:38:41 +02:00
dynamicconfig Add project scaffold: contracts, schemas, docker-compose, workplans 2026-03-04 22:45:40 +01:00
e2e Enforce bounded operation guardrails 2026-08-23 12:31:13 +02:00
event-types Migrate ops inventory OCI endpoint to Forgejo registry 2026-07-09 11:38:15 +02:00
history Enforce bounded operation guardrails 2026-08-23 12:31:13 +02:00
k8s/railiance Bind multiple queue worker identities, one token each (WP-0039-T01) 2026-09-23 17:38:41 +02:00
migrations fix(workplans): resolve repository grant id collision 2026-09-04 19:30:53 +02:00
registry Add capability registry with seed entry from reuse-surface 2026-06-16 01:46:52 +02:00
schemas Enforce bounded operation guardrails 2026-08-23 12:31:13 +02:00
scripts Keep Forgejo prune inventory outside replaceable checkouts 2026-09-05 10:04:59 +02:00
src/activity_core Bind multiple queue worker identities, one token each (WP-0039-T01) 2026-09-23 17:38:41 +02:00
tasks feat(WP-0003c): context adapters, first ActivityDefinition, full test suite 2026-05-14 23:24:48 +02:00
tests Bind multiple queue worker identities, one token each (WP-0039-T01) 2026-09-23 17:38:41 +02:00
wiki Add project scaffold: contracts, schemas, docker-compose, workplans 2026-03-04 22:45:40 +01:00
workplans Bind multiple queue worker identities, one token each (WP-0039-T01) 2026-09-23 17:38:41 +02:00
.custodian-brief.md chore(consistency): sync task status from DB [auto] 2026-09-22 22:47:40 +02:00
.dockerignore feat(WP-0004): railiance deployment & service ops 2026-05-15 00:04:39 +02:00
.env.example Fail closed on invalid Glas profiles 2026-08-22 23:02:41 +02:00
.gitignore Initial commit 2026-03-02 00:24:41 +00:00
.repo-classification.yaml Mark .repo-classification.yaml human-reviewed (CUST-WP-0050 T02) 2026-06-22 11:40:43 +02:00
AGENTS.md docs(agents): repoint remote State Hub URL to the in-cluster address 2026-08-25 00:20:36 +02:00
alembic.ini feat(db): init Alembic (async) + SQLAlchemy declarative base — T08 2026-03-26 21:45:40 +00:00
CLAUDE.md Add credential routing instructions for all agent runtimes 2026-06-18 22:48:37 +02:00
cron_expression Add schedule metadata artifacts 2026-06-07 21:09:08 +02:00
docker-compose.dev.yml feat(WP-0002): complete Triggers & Ops workstream 2026-03-28 01:04:43 +01:00
docker-compose.railiance.yml fix(WP-0004): live deployment fixes from integration test 2026-05-15 09:23:14 +02:00
Dockerfile Deploy activity-core on railiance01 2026-05-22 13:49:46 +02:00
INTENT.md Enforce bounded operation guardrails 2026-08-23 12:31:13 +02:00
LICENSE Adopt Target Revenue Source License V1C1 (org-wide preliminary rollout) 2026-07-29 23:48:04 +02:00
Makefile feat(activity): multi-service config, make help default, install-cli 2026-08-06 17:25:54 +02:00
misfire_policy Add schedule metadata artifacts 2026-06-07 21:09:08 +02:00
pyproject.toml feat(activity): repo-scoped automation review CLI (WP-0028) 2026-08-06 13:05:46 +02:00
README.md Enforce bounded operation guardrails 2026-08-23 12:31:13 +02:00
SCOPE.md Enforce bounded operation guardrails 2026-08-23 12:31:13 +02:00
timezone Add schedule metadata artifacts 2026-06-07 21:09:08 +02:00
uv.lock Wire llm-connect runtime for daily triage 2026-06-18 15:12:31 +02:00
WORK-RECORDS.md chore(consistency): refresh work-record index for WP-0036 closure 2026-09-22 22:46:49 +02:00

activity-core

activity-core is Coulomb's durable automation factory. It answers when an automation fires (Temporal Schedules, NATS, webhooks, or manual triggers), what should be emitted (deterministic rules or optional validated LLM instructions), and where the result goes (task, report, evidence, or runtime-delivery sinks).

It is not a project tracker, a general shell runner, or a task executor. A small code-owned registry permits three bounded platform operations: controlled SBOM ingest, Forgejo package pruning, and CNPG Option A backup.

Start here

Definitions are authored in activity-definitions/*.md and synchronized into Postgres and Temporal. The /activity-definitions/ REST endpoints provide basic row administration only; they do not round-trip the full markdown rules/instructions contract.

For local setup and verification, follow the runbook. The installed activity CLI is the operator review surface; run uv run activity --help for commands.