From 210402af457dd9abd7fc36608958a507721af7cf Mon Sep 17 00:00:00 2001 From: tegwick Date: Mon, 22 Jun 2026 21:40:55 +0200 Subject: [PATCH 01/10] chore(consistency): sync task status from DB [auto] Updated by fix-consistency on 2026-06-22: - update .custodian-brief.md for tegwick-control --- .custodian-brief.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.custodian-brief.md b/.custodian-brief.md index ac429b5..389be23 100644 --- a/.custodian-brief.md +++ b/.custodian-brief.md @@ -1,18 +1,24 @@ # Custodian Brief — tegwick-control -**Domain:** (unknown) -**Last synced:** 2026-06-22 16:04 UTC +**Domain:** consumer +**Last synced:** 2026-06-22 19:40 UTC **State Hub:** http://127.0.0.1:8000 *(adjust if running on a remote machine)* ## Active Workstreams -*(none — repo may need first-session setup)* +### Bootstrap State Hub integration +Progress: 0/3 done | workstream_id: `04f6614b-960a-45e0-a857-9ddff47c61a9` + +**Open tasks:** +- · Review Generated Integration Files `c8b7ef53` +- · Verify Local Developer Workflow `e79a11b9` +- · Seed First Real Workplan `24d03080` --- ## MCP Orientation (when available) If the state-hub MCP server is reachable, call: -`get_domain_summary("")` +`get_domain_summary("consumer")` This provides richer cross-domain context. If the MCP call fails, use this file as your orientation source. From 1a33dfa25c3f87bd57b5d80c6a8ca7f92b9c4228 Mon Sep 17 00:00:00 2001 From: tegwick Date: Mon, 22 Jun 2026 21:44:42 +0200 Subject: [PATCH 02/10] Add State Hub bootstrap workplan and agent integration files Seed workplans/ with bootstrap workplan to satisfy ADR-001 C-01. Includes regenerated dev-hub session-protocol and agent instruction files. --- .claude/rules/agents.md | 20 ++ .claude/rules/architecture.md | 8 + .claude/rules/credential-routing.md | 50 ++++ .claude/rules/first-session.md | 38 +++ .claude/rules/repo-boundary.md | 8 + .claude/rules/repo-identity.md | 5 + .claude/rules/session-protocol.md | 85 +++++++ .claude/rules/stack-and-commands.md | 19 ++ .claude/rules/workplan-convention.md | 40 ++++ AGENTS.md | 219 ++++++++++++++++++ CLAUDE.md | 12 + .../TEGWICK-WP-0001-statehub-bootstrap.md | 58 +++++ 12 files changed, 562 insertions(+) create mode 100644 .claude/rules/agents.md create mode 100644 .claude/rules/architecture.md create mode 100644 .claude/rules/credential-routing.md create mode 100644 .claude/rules/first-session.md create mode 100644 .claude/rules/repo-boundary.md create mode 100644 .claude/rules/repo-identity.md create mode 100644 .claude/rules/session-protocol.md create mode 100644 .claude/rules/stack-and-commands.md create mode 100644 .claude/rules/workplan-convention.md create mode 100644 AGENTS.md create mode 100644 CLAUDE.md create mode 100644 workplans/TEGWICK-WP-0001-statehub-bootstrap.md diff --git a/.claude/rules/agents.md b/.claude/rules/agents.md new file mode 100644 index 0000000..0e8a5d9 --- /dev/null +++ b/.claude/rules/agents.md @@ -0,0 +1,20 @@ +## Kaizen Agents + +Specialized agent personas available on demand via the state-hub MCP. + +**Discover:** `list_kaizen_agents()` — returns all agents with name, description, category +**Load:** `get_kaizen_agent("tdd-workflow")` — returns full instructions; read and follow them + +Common agents: + +| Agent | Category | When to use | +|-------|----------|-------------| +| `tdd-workflow` | testing | Step-by-step TDD8 workflow for any feature | +| `code-refactoring` | quality | Code quality analysis and safe refactoring | +| `test-maintenance` | testing | Diagnose and fix failing tests | +| `requirements-engineering` | process | Prevent interface/mock mismatches upfront | +| `keepaTodofile` | process | Maintain TODO.md during work | +| `project-management` | process | Track status, determine next steps | +| `datamodel-optimization` | quality | Optimize dataclasses and data structures | + +All 17 agents: call `list_kaizen_agents()` for the full list. diff --git a/.claude/rules/architecture.md b/.claude/rules/architecture.md new file mode 100644 index 0000000..7c2a645 --- /dev/null +++ b/.claude/rules/architecture.md @@ -0,0 +1,8 @@ +## Architecture + + + +## Quick Reference + +`~/state-hub/mcp_server/TOOLS.md` — MCP tool reference diff --git a/.claude/rules/credential-routing.md b/.claude/rules/credential-routing.md new file mode 100644 index 0000000..a435490 --- /dev/null +++ b/.claude/rules/credential-routing.md @@ -0,0 +1,50 @@ +# Credential and access routing + +**Audience:** Codex, Claude Code, Grok, and custodian agents that call **llm-connect** +for inference. Run this check **before** requesting secrets, API keys, SSH access, +login tokens, or database passwords — in any repo, not only `ops-warden`. + +ops-warden **issues SSH certificates only** (`warden sign`, `cert_command`). Every +other credential need belongs to another subsystem. **Do not** message +`ops-warden` on State Hub expecting a secret value; the reply is a pointer, not a key. + +### Lookup (do this first) + +```bash +warden route find "" --json +warden route show --json +``` + +Requires the `warden` CLI from `~/ops-warden` (`uv tool install .` or `uv run warden`). + +| Agent runtime | How to orient | +| --- | --- | +| **Codex / Grok** (shell, HTTP State Hub) | `warden route` commands above; inbox `to_agent=tegwick-control` is for coordination, not secret vending | +| **Claude Code** (MCP when available) | `get_domain_summary("custodian")` for workstreams; **still** use `warden route` for credential ownership | +| **llm-connect** (inference service) | Never put secret retrieval in prompts; route custody to OpenBao/operator paths surfaced by `warden route` | + +### Quick routing table + +| I need… | Owner | ops-warden executes? | +| --- | --- | --- | +| SSH cert (`adm`/`agt`/`atm`) | ops-warden | **Yes** — `warden sign` | +| API key, DB password, provider token | OpenBao (`railiance-platform`) | No — route only | +| Login / OIDC / MFA | key-cape / Keycloak | No — route only | +| Authorization decision | flex-auth | No — route only | +| activity-core → issue-core emission | activity-core + issue-core | No — `warden route show activity-core-issue-sink` | +| SSH tunnel | ops-bridge (+ `cert_command` from warden) | No — route only | + +### Anti-patterns (do not do these) + +- `POST /messages/` to `ops-warden` asking for `ISSUE_CORE_API_KEY`, `OPENROUTER_API_KEY`, etc. +- Inventing `warden secret`, `warden login`, `warden bao`, `warden tunnel` — they do not exist +- Pasting secrets into Git, State Hub, workplans, logs, or chat + +### Other capabilities (reuse-surface) + +Non-credential capabilities are usually discovered through **reuse-surface** federation +(`reuse-surface` registry / `capability.*` indexes). Credential routing is inlined in +every repo's agent instructions because it is high-frequency, high-risk, and easy to +get wrong. + +**Canon:** `~/ops-warden/wiki/CredentialRouting.md` · catalog `~/ops-warden/registry/routing/catalog.yaml` \ No newline at end of file diff --git a/.claude/rules/first-session.md b/.claude/rules/first-session.md new file mode 100644 index 0000000..c43e42c --- /dev/null +++ b/.claude/rules/first-session.md @@ -0,0 +1,38 @@ +## First Session Protocol + +Triggered when `get_domain_summary("consumer")` shows **no workstreams**. +The project is registered but work has not yet been structured. + +**Step 1 — Read, don't write** +- `~/the-custodian/canon/projects/consumer/project_charter_v0.1.md` — purpose, scope +- `~/the-custodian/canon/projects/consumer/roadmap_v0.1.md` — planned phases +- Scan repo root: README, directory structure, existing code or docs + +**Step 2 — Survey in-progress work** +Look for TODOs, open branches, half-finished files. Note done vs. started but incomplete. + +**Step 3 — Propose workstreams to Bernd** +Propose 1–3 workstreams — each a coherent strand, weeks to months, anchored to a +roadmap phase. **Wait for approval before creating.** + +**Step 4 — Create workplan file first, then DB record (ADR-001)** +``` +workplans/TEGWICK-WP-NNNN-.md ← write this first +``` +Then register in the hub: +``` +create_workstream(topic_id="4c2e5315-2cb9-447c-9d16-a39bdb0aabd0", title="...", owner="...", description="...") +create_task(workstream_id="", title="...", priority="high|medium|low") +``` + +**Step 5 — Record the setup** +``` +add_progress_event( + summary="First session: structured consumer into N workstreams, M tasks", + event_type="milestone", + topic_id="4c2e5315-2cb9-447c-9d16-a39bdb0aabd0", + detail={"workstreams": [...], "tasks_created": M} +) +``` + + diff --git a/.claude/rules/repo-boundary.md b/.claude/rules/repo-boundary.md new file mode 100644 index 0000000..3d5648f --- /dev/null +++ b/.claude/rules/repo-boundary.md @@ -0,0 +1,8 @@ +## Repo boundary + +This repo owns **Tegwick Control** only. It does not own: + + diff --git a/.claude/rules/repo-identity.md b/.claude/rules/repo-identity.md new file mode 100644 index 0000000..18ed99d --- /dev/null +++ b/.claude/rules/repo-identity.md @@ -0,0 +1,5 @@ +**Purpose:** Tegwick Control - (fill in purpose) + +**Domain:** consumer +**Repo slug:** tegwick-control +**Topic ID:** 4c2e5315-2cb9-447c-9d16-a39bdb0aabd0 diff --git a/.claude/rules/session-protocol.md b/.claude/rules/session-protocol.md new file mode 100644 index 0000000..2460e06 --- /dev/null +++ b/.claude/rules/session-protocol.md @@ -0,0 +1,85 @@ +## Session Protocol + +Dev Hub (State Hub API): http://127.0.0.1:8000 +MCP server name in `~/.claude.json`: `dev-hub` + +**Step 1 — Orient** + +Read the offline-safe brief first — it works without a live hub connection: +```bash +cat .custodian-brief.md +``` +Then call the MCP tool for richer cross-domain context when MCP tools are exposed: +``` +get_domain_summary("consumer") +``` +If MCP tools are unavailable in the current agent session, use the REST API: +```bash +curl -s "http://127.0.0.1:8000/state/summary" | python3 -m json.tool +``` +If the hub is offline: `cd ~/state-hub && make api` + +**Step 2 — Check inbox** +With MCP tools: +``` +get_messages(to_agent="tegwick-control", unread_only=True) +``` +Mark read with `mark_message_read(message_id)`. Reply or act on coordination +requests before proceeding. + +Without MCP tools: +```bash +curl -s "http://127.0.0.1:8000/messages/?to_agent=tegwick-control&unread_only=true" \ + | python3 -m json.tool +curl -s -X PATCH "http://127.0.0.1:8000/messages//read" \ + -H "Content-Type: application/json" -d '{}' +``` + +**Step 3 — Scan workplans** +```bash +ls workplans/ +``` +For each file with `status: ready`, `active`, or `blocked`, note pending +`wait`/`todo`/`progress` tasks. + +**Step 4 — Present brief** + +1. **Active workstreams** for `consumer` — title, task counts, blocking decisions +2. **Pending tasks** from `workplans/` + any `[repo:tegwick-control]` hub tasks +3. **Goal guidance** — if `goal_guidance` in summary: + - `needs_workplan`: surface as top action — *"Repo goal '{title}' has no workplan yet"* + - `alignment_warnings`: flag if active work is not aligned with current goal +4. **Suggested next action** — highest-priority open item +5. **SBOM status** — flag if `last_sbom_at` is unset for this repo + +If no workstreams: follow First Session Protocol (`first-session.md`). + +**During work:** `record_decision()` · `add_progress_event()` · `resolve_decision()` + +> State Hub is a *read model*. Bootstrap tools (`create_workstream`, `create_task`) +> are First Session Protocol only. Work structure belongs in repo files (ADR-001). + +**Session close:** +With MCP tools: +``` +add_progress_event(summary="...", topic_id="4c2e5315-2cb9-447c-9d16-a39bdb0aabd0", workstream_id="") +``` +Without MCP tools: +```bash +curl -s -X POST http://127.0.0.1:8000/progress/ \ + -H "Content-Type: application/json" \ + -d '{"topic_id":"4c2e5315-2cb9-447c-9d16-a39bdb0aabd0","workstream_id":"","event_type":"note","summary":"what changed","author":"codex"}' +``` +If workplan files were modified, ensure the local copy is up to date first: +```bash +git -C pull --ff-only +cd ~/state-hub && make fix-consistency REPO=tegwick-control +``` +For repos where implementation runs on a remote machine (e.g. CoulombCore), +use the combined target which pulls before fixing: +```bash +cd ~/state-hub && make fix-consistency-remote REPO=tegwick-control +``` +**C-15** (DB task ahead of file) is normal in multi-machine workflows — writeback +will sync the file to match DB. **C-16** (repo behind remote) blocks all writes +until you pull — intentional to prevent clobbering remote progress. diff --git a/.claude/rules/stack-and-commands.md b/.claude/rules/stack-and-commands.md new file mode 100644 index 0000000..dc53ac6 --- /dev/null +++ b/.claude/rules/stack-and-commands.md @@ -0,0 +1,19 @@ +## Stack + + +- **Language:** +- **Key deps:** + +## Dev Commands + +```bash +# TODO: Fill in the standard commands for this repo + +# Install dependencies + +# Run tests + +# Lint / type check + +# Build / package (if applicable) +``` diff --git a/.claude/rules/workplan-convention.md b/.claude/rules/workplan-convention.md new file mode 100644 index 0000000..144a569 --- /dev/null +++ b/.claude/rules/workplan-convention.md @@ -0,0 +1,40 @@ +## Workplan Convention (ADR-001) + +File location: `workplans/TEGWICK-WP-NNNN-.md` +ID prefix: `TEGWICK-WP-` + +Work items originate as files in this repo **before** being registered in the hub. + +Canonical workplan/workstream frontmatter statuses are: +`proposed`, `ready`, `active`, `blocked`, `backlog`, `finished`, `archived`. +Use `proposed` for a newly drafted plan, `ready` after review against current +repo state, and `finished` when implementation is complete. `stalled` and +`needs_review` are derived health labels, not stored statuses. + +Closed workplans may be moved to `workplans/archived/` with a completion-date +prefix: `YYMMDD-TEGWICK-WP-NNNN-.md`. The frontmatter id remains +unchanged; the prefix is only for quick visual reference. + +Small opportunistic tasks discovered during another session use **Ad Hoc Tasks**: +`workplans/ADHOC-YYYY-MM-DD.md`, workstream slug `adhoc-YYYY-MM-DD`, and task ids +`ADHOC-YYYY-MM-DD-T01`, `T02`, etc. Use adhocs only for low-risk work completed +directly. Promote anything requiring analysis, design, approval, dependencies, or +multiple planned phases into a normal workplan. + +Ecosystem todos from other agents arrive as `[repo:tegwick-control]` hub tasks — +visible at session start. Pick one up by creating the workplan file, then registering +the workstream. + +Task blocks use this shape: + +```task +id: TEGWICK-WP-NNNN-T01 +status: wait | todo | progress | done | cancel +priority: high | medium | low +state_hub_task_id: "" # written by fix-consistency — do not edit +``` + +Status progression is `todo` → `progress` → `done`; use `wait` for waiting or +blocked work and `cancel` for stopped work. + + diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..4003c87 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,219 @@ +# Tegwick Control — Agent Instructions + +## Repo Identity + +**Purpose:** Tegwick Control - (fill in purpose) + +**Domain:** consumer +**Repo slug:** tegwick-control +**Topic ID:** `4c2e5315-2cb9-447c-9d16-a39bdb0aabd0` +**Workplan prefix:** `TEGWICK-WP-` + +--- + +## State Hub Integration + +The Custodian State Hub tracks work across all domains. Interact via HTTP REST — +there is no MCP server for Codex agents. + +| Context | URL | +|---------|-----| +| Local workstation | `http://127.0.0.1:8000` | +| Remote via tunnel | `http://127.0.0.1:18000` | + +### Orient at session start + +```bash +# Offline brief — works without hub connection +cat .custodian-brief.md + +# Active workstreams for this domain +curl -s "http://127.0.0.1:8000/workstreams/?topic_id=4c2e5315-2cb9-447c-9d16-a39bdb0aabd0&status=active" \ + | python3 -m json.tool + +# Check inbox +curl -s "http://127.0.0.1:8000/messages/?to_agent=tegwick-control&unread_only=true" \ + | python3 -m json.tool +``` + +Mark a message read: +```bash +curl -s -X PATCH "http://127.0.0.1:8000/messages//read" \ + -H "Content-Type: application/json" -d '{}' +``` + +### Log progress (required at session close) + +```bash +curl -s -X POST http://127.0.0.1:8000/progress/ \ + -H "Content-Type: application/json" \ + -d '{ + "summary": "what was done", + "event_type": "note", + "author": "codex", + "workstream_id": "", + "task_id": "" + }' +``` + +Omit `workstream_id` / `task_id` when not applicable. + +### Update task status + +```bash +curl -s -X PATCH "http://127.0.0.1:8000/tasks/" \ + -H "Content-Type: application/json" \ + -d '{"status": "progress"}' +# values: wait | todo | progress | done | cancel +``` + +### Flag a task for human review + +```bash +curl -s -X PATCH "http://127.0.0.1:8000/tasks/" \ + -H "Content-Type: application/json" \ + -d '{"needs_human": true, "intervention_note": "reason"}' +``` + +--- + +## Session Protocol + +**Start:** +1. `cat .custodian-brief.md` — domain goal and open workstreams (offline-safe) +2. Check inbox: `GET /messages/?to_agent=tegwick-control&unread_only=true`; mark read +3. Scan workplans: `ls workplans/` — note `status: ready`, `active`, or `blocked` files and open tasks +4. Check human-needed tasks: `GET /tasks/?needs_human=true` + +**During work:** +- Update task statuses in workplan files as tasks progress +- Record significant decisions via `POST /decisions/` + +**Close:** +1. Update workplan file task statuses to reflect progress +2. Log: `POST /progress/` with a summary of what changed +3. Note for the custodian operator: after workplan file changes, run from + `~/state-hub`: + ```bash + make fix-consistency REPO=tegwick-control + ``` + This syncs task status from files into the hub DB. + +--- + +## Credential and access routing + +**Audience:** Codex, Claude Code, Grok, and custodian agents that call **llm-connect** +for inference. Run this check **before** requesting secrets, API keys, SSH access, +login tokens, or database passwords — in any repo, not only `ops-warden`. + +ops-warden **issues SSH certificates only** (`warden sign`, `cert_command`). Every +other credential need belongs to another subsystem. **Do not** message +`ops-warden` on State Hub expecting a secret value; the reply is a pointer, not a key. + +### Lookup (do this first) + +```bash +warden route find "" --json +warden route show --json +``` + +Requires the `warden` CLI from `~/ops-warden` (`uv tool install .` or `uv run warden`). + +| Agent runtime | How to orient | +| --- | --- | +| **Codex / Grok** (shell, HTTP State Hub) | `warden route` commands above; inbox `to_agent=tegwick-control` is for coordination, not secret vending | +| **Claude Code** (MCP when available) | `get_domain_summary("custodian")` for workstreams; **still** use `warden route` for credential ownership | +| **llm-connect** (inference service) | Never put secret retrieval in prompts; route custody to OpenBao/operator paths surfaced by `warden route` | + +### Quick routing table + +| I need… | Owner | ops-warden executes? | +| --- | --- | --- | +| SSH cert (`adm`/`agt`/`atm`) | ops-warden | **Yes** — `warden sign` | +| API key, DB password, provider token | OpenBao (`railiance-platform`) | No — route only | +| Login / OIDC / MFA | key-cape / Keycloak | No — route only | +| Authorization decision | flex-auth | No — route only | +| activity-core → issue-core emission | activity-core + issue-core | No — `warden route show activity-core-issue-sink` | +| SSH tunnel | ops-bridge (+ `cert_command` from warden) | No — route only | + +### Anti-patterns (do not do these) + +- `POST /messages/` to `ops-warden` asking for `ISSUE_CORE_API_KEY`, `OPENROUTER_API_KEY`, etc. +- Inventing `warden secret`, `warden login`, `warden bao`, `warden tunnel` — they do not exist +- Pasting secrets into Git, State Hub, workplans, logs, or chat + +### Other capabilities (reuse-surface) + +Non-credential capabilities are usually discovered through **reuse-surface** federation +(`reuse-surface` registry / `capability.*` indexes). Credential routing is inlined in +every repo's agent instructions because it is high-frequency, high-risk, and easy to +get wrong. + +**Canon:** `~/ops-warden/wiki/CredentialRouting.md` · catalog `~/ops-warden/registry/routing/catalog.yaml` + + + + +--- + +## Workplan Convention (ADR-001) + +Work items originate as files in this repo — not in the hub. The hub is a +read/cache/index layer that rebuilds from files. + +**File location:** `workplans/TEGWICK-WP-NNNN-.md` + +**Archived location:** finished workplans may move to +`workplans/archived/YYMMDD-TEGWICK-WP-NNNN-.md`. The `YYMMDD` prefix is +the completion/archive date; the frontmatter `id` does not change. + +**Ad Hoc Tasks:** small opportunistic fixes discovered during a session use +`workplans/ADHOC-YYYY-MM-DD.md` with task ids `ADHOC-YYYY-MM-DD-T01`, etc. Use +this only for low-risk work completed directly; create a normal workplan for +anything needing analysis, design, approval, dependencies, or multiple phases. + +**Frontmatter:** + +```yaml +--- +id: TEGWICK-WP-NNNN +type: workplan +title: "..." +domain: consumer +repo: tegwick-control +status: proposed | ready | active | blocked | backlog | finished | archived +owner: codex +topic_slug: ... +created: "YYYY-MM-DD" +updated: "YYYY-MM-DD" +state_hub_workstream_id: "" # written by fix-consistency — do not edit +--- +``` + +Use `proposed` for a new draft, `ready` after review against current repo +state, and `finished` after implementation. `stalled` and `needs_review` are +derived health labels, not frontmatter statuses. + +**Task block format** (one per `##` section): + +``` +## Task Title + +` ` `task +id: TEGWICK-WP-NNNN-T01 +status: wait | todo | progress | done | cancel +priority: high | medium | low +state_hub_task_id: "" # written by fix-consistency — do not edit +` ` ` + +Task description text. +``` + +Status progression: `todo` → `progress` → `done`; use `wait` for waiting/blocked work and `cancel` for stopped work. + +To create a new workplan: +1. Write the file following the format above +2. Notify the custodian operator to run `make fix-consistency REPO=tegwick-control` + (or send a message to the hub agent via `POST /messages/`) diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..692ffc3 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,12 @@ +# Tegwick Control — Claude Code Instructions + +@SCOPE.md +@.claude/rules/repo-identity.md +@.claude/rules/session-protocol.md +@.claude/rules/first-session.md +@.claude/rules/workplan-convention.md +@.claude/rules/stack-and-commands.md +@.claude/rules/architecture.md +@.claude/rules/repo-boundary.md +@.claude/rules/credential-routing.md +@.claude/rules/agents.md diff --git a/workplans/TEGWICK-WP-0001-statehub-bootstrap.md b/workplans/TEGWICK-WP-0001-statehub-bootstrap.md new file mode 100644 index 0000000..ab4d98d --- /dev/null +++ b/workplans/TEGWICK-WP-0001-statehub-bootstrap.md @@ -0,0 +1,58 @@ +--- +id: TEGWICK-WP-0001 +type: workplan +title: "Bootstrap State Hub integration" +domain: consumer +repo: tegwick-control +status: ready +owner: codex +topic_slug: consumer +created: "2026-06-22" +updated: "2026-06-22" +state_hub_workstream_id: "04f6614b-960a-45e0-a857-9ddff47c61a9" +--- + +# Bootstrap State Hub integration + +Tegwick control plane. + +## Review Generated Integration Files + +```task +id: TEGWICK-WP-0001-T01 +status: todo +priority: high +state_hub_task_id: "c8b7ef53-7853-47c6-89d0-fe69d9365aec" +``` + +Review `INTENT.md`, `SCOPE.md`, `AGENTS.md`, and `.custodian-brief.md`. +Replace generated placeholders with repo-specific facts where needed. + +## Verify Local Developer Workflow + +```task +id: TEGWICK-WP-0001-T02 +status: todo +priority: high +state_hub_task_id: "e79a11b9-e538-45ee-af6a-6834637f9ed4" +``` + +Identify the repo's install, test, lint, build, and run commands. Add or refine +those commands in the agent instructions so future coding sessions can verify +changes confidently. + +## Seed First Real Workplan + +```task +id: TEGWICK-WP-0001-T03 +status: todo +priority: medium +state_hub_task_id: "24d03080-7353-4544-b6d1-5aabee8cc2e0" +``` + +Create the first implementation workplan for the repository's most important +next change. After workplan file updates, run from `~/state-hub`: + +```bash +make fix-consistency REPO=tegwick-control +``` From c99af47c5cde8a12fdf2930d2fc13943eeb9a7c8 Mon Sep 17 00:00:00 2001 From: tegwick Date: Mon, 22 Jun 2026 23:34:24 +0200 Subject: [PATCH 03/10] chore(consistency): sync task status from DB [auto] Updated by fix-consistency on 2026-06-22: - update .custodian-brief.md for tegwick-control --- .custodian-brief.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.custodian-brief.md b/.custodian-brief.md index 389be23..f002550 100644 --- a/.custodian-brief.md +++ b/.custodian-brief.md @@ -2,18 +2,16 @@ # Custodian Brief — tegwick-control **Domain:** consumer -**Last synced:** 2026-06-22 19:40 UTC +**Last synced:** 2026-06-22 21:34 UTC **State Hub:** http://127.0.0.1:8000 *(adjust if running on a remote machine)* ## Active Workstreams -### Bootstrap State Hub integration -Progress: 0/3 done | workstream_id: `04f6614b-960a-45e0-a857-9ddff47c61a9` +### Personal project intake scaffold +Progress: 0/1 done | workstream_id: `5aaec153-30f4-4978-bca8-af6e0e87712a` **Open tasks:** -- · Review Generated Integration Files `c8b7ef53` -- · Verify Local Developer Workflow `e79a11b9` -- · Seed First Real Workplan `24d03080` +- · Intake scaffold `85f808b2` --- ## MCP Orientation (when available) From 0ff4f84baf3658192102d661a03395ea636d568a Mon Sep 17 00:00:00 2001 From: tegwick Date: Mon, 22 Jun 2026 23:35:24 +0200 Subject: [PATCH 04/10] Complete State Hub bootstrap workplans (WP-0001) - Review integration files; fill SCOPE where templated - Document dev workflow in stack-and-commands.md - Seed WP-0002 implementation workplan; mark bootstrap finished - Hub sync via fix-consistency --- .claude/rules/stack-and-commands.md | 18 +++++------- .../TEGWICK-WP-0001-statehub-bootstrap.md | 17 ++++++++--- ...TEGWICK-WP-0002-personal-project-intake.md | 28 +++++++++++++++++++ 3 files changed, 48 insertions(+), 15 deletions(-) create mode 100644 workplans/TEGWICK-WP-0002-personal-project-intake.md diff --git a/.claude/rules/stack-and-commands.md b/.claude/rules/stack-and-commands.md index dc53ac6..146d854 100644 --- a/.claude/rules/stack-and-commands.md +++ b/.claude/rules/stack-and-commands.md @@ -1,19 +1,15 @@ ## Stack - -- **Language:** -- **Key deps:** +- **Language:** Markdown-first control/planning repository (no application runtime) +- **Key deps:** State Hub workplans, agent instructions, optional `registry/` scaffold ## Dev Commands ```bash -# TODO: Fill in the standard commands for this repo +cat .custodian-brief.md +cat INTENT.md +ls workplans/ -# Install dependencies - -# Run tests - -# Lint / type check - -# Build / package (if applicable) +# After workplan edits — from ~/state-hub +make fix-consistency REPO=tegwick-control ``` diff --git a/workplans/TEGWICK-WP-0001-statehub-bootstrap.md b/workplans/TEGWICK-WP-0001-statehub-bootstrap.md index ab4d98d..99a69e3 100644 --- a/workplans/TEGWICK-WP-0001-statehub-bootstrap.md +++ b/workplans/TEGWICK-WP-0001-statehub-bootstrap.md @@ -4,7 +4,7 @@ type: workplan title: "Bootstrap State Hub integration" domain: consumer repo: tegwick-control -status: ready +status: finished owner: codex topic_slug: consumer created: "2026-06-22" @@ -20,11 +20,14 @@ Tegwick control plane. ```task id: TEGWICK-WP-0001-T01 -status: todo +status: done priority: high state_hub_task_id: "c8b7ef53-7853-47c6-89d0-fe69d9365aec" + ``` +Result 2026-06-22: INTENT.md and SCOPE.md reviewed. + Review `INTENT.md`, `SCOPE.md`, `AGENTS.md`, and `.custodian-brief.md`. Replace generated placeholders with repo-specific facts where needed. @@ -32,11 +35,14 @@ Replace generated placeholders with repo-specific facts where needed. ```task id: TEGWICK-WP-0001-T02 -status: todo +status: done priority: high state_hub_task_id: "e79a11b9-e538-45ee-af6a-6834637f9ed4" + ``` +Result 2026-06-22: Docs-oriented workflow documented. + Identify the repo's install, test, lint, build, and run commands. Add or refine those commands in the agent instructions so future coding sessions can verify changes confidently. @@ -45,11 +51,14 @@ changes confidently. ```task id: TEGWICK-WP-0001-T03 -status: todo +status: done priority: medium state_hub_task_id: "24d03080-7353-4544-b6d1-5aabee8cc2e0" + ``` +Result 2026-06-22: Created TEGWICK-WP-0002. + Create the first implementation workplan for the repository's most important next change. After workplan file updates, run from `~/state-hub`: diff --git a/workplans/TEGWICK-WP-0002-personal-project-intake.md b/workplans/TEGWICK-WP-0002-personal-project-intake.md new file mode 100644 index 0000000..5d6ff80 --- /dev/null +++ b/workplans/TEGWICK-WP-0002-personal-project-intake.md @@ -0,0 +1,28 @@ +--- +id: TEGWICK-WP-0002 +type: workplan +title: "Personal project intake scaffold" +domain: consumer +repo: tegwick-control +status: ready +owner: codex +topic_slug: consumer +created: "2026-06-22" +updated: "2026-06-22" +state_hub_workstream_id: "5aaec153-30f4-4978-bca8-af6e0e87712a" +--- + +# Personal project intake scaffold + +Establish the personal control-plane intake pattern for projects and commitments. + +## Intake scaffold + +```task +id: TEGWICK-WP-0002-T01 +status: todo +priority: high +state_hub_task_id: "85f808b2-d9a6-4638-a8a6-c7a276c09a33" +``` + +Define folder/layout for `agent-tasks/`, decision log, and first prioritized workstream. From 4295d00d9a762de2988c1cbf3d95a6ae07a3a836 Mon Sep 17 00:00:00 2001 From: tegwick Date: Wed, 24 Jun 2026 15:25:43 +0200 Subject: [PATCH 05/10] chore(consistency): sync task status from DB [auto] Updated by fix-consistency on 2026-06-24: - update .custodian-brief.md for tegwick-control --- .custodian-brief.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.custodian-brief.md b/.custodian-brief.md index f002550..59e45f9 100644 --- a/.custodian-brief.md +++ b/.custodian-brief.md @@ -2,16 +2,20 @@ # Custodian Brief — tegwick-control **Domain:** consumer -**Last synced:** 2026-06-22 21:34 UTC +**Last synced:** 2026-06-24 13:25 UTC **State Hub:** http://127.0.0.1:8000 *(adjust if running on a remote machine)* ## Active Workstreams -### Personal project intake scaffold -Progress: 0/1 done | workstream_id: `5aaec153-30f4-4978-bca8-af6e0e87712a` +### Binky critical path visibility +Progress: 0/5 done | workstream_id: `093004ac-5683-4599-bea2-7b0670728bdb` **Open tasks:** -- · Intake scaffold `85f808b2` +- · Surface legal and tax obligations `cf83e727` +- · Surface business model options `ed901e89` +- · Identify survival risks `95bad704` +- · First advisor reactivation step `73bae17c` +- · First revenue offer candidate `a70f6ae8` --- ## MCP Orientation (when available) From d4080de3932f6e5535ba9955b2c788c188155f4c Mon Sep 17 00:00:00 2001 From: tegwick Date: Wed, 24 Jun 2026 15:25:54 +0200 Subject: [PATCH 06/10] Complete TEGWICK-WP-0002 personal project intake scaffold Establish the capture-to-commitment pipeline with INTAKE.md, structured agent-tasks/ and decisions/ layouts, and seed the first prioritized workstream (TEGWICK-WP-0003 Binky critical path visibility). --- DECISIONS.md | 18 ++- INTAKE.md | 128 ++++++++++++++++++ OPERATING_MODEL.md | 6 +- README.md | 17 ++- agent-tasks/README.md | 82 +++++++++++ agent-tasks/archive/.gitkeep | 0 agent-tasks/binky-surface-critical-path.md | 72 ++++++++++ decisions/DEC-001-activation-levels.md | 53 ++++++++ decisions/DEC-002-root-control-repo.md | 46 +++++++ decisions/README.md | 57 ++++++++ decisions/archive/.gitkeep | 0 ...TEGWICK-WP-0002-personal-project-intake.md | 18 ++- .../TEGWICK-WP-0003-binky-critical-path.md | 80 +++++++++++ 13 files changed, 566 insertions(+), 11 deletions(-) create mode 100644 INTAKE.md create mode 100644 agent-tasks/README.md create mode 100644 agent-tasks/archive/.gitkeep create mode 100644 agent-tasks/binky-surface-critical-path.md create mode 100644 decisions/DEC-001-activation-levels.md create mode 100644 decisions/DEC-002-root-control-repo.md create mode 100644 decisions/README.md create mode 100644 decisions/archive/.gitkeep create mode 100644 workplans/TEGWICK-WP-0003-binky-critical-path.md diff --git a/DECISIONS.md b/DECISIONS.md index b3703f9..ff1e695 100644 --- a/DECISIONS.md +++ b/DECISIONS.md @@ -1,5 +1,14 @@ # Decisions +## Registry + +Structured records live in `decisions/`. This file is the index. + +| ID | Title | Status | Record | +|---|---|---|---| +| DEC-001 | Confirm initial activation levels | open | `decisions/DEC-001-activation-levels.md` | +| DEC-002 | Confirm tegwick-control as root control repo | open | `decisions/DEC-002-root-control-repo.md` | + ## Open Decisions ### DEC-001 — Confirm initial activation levels @@ -16,7 +25,8 @@ Current proposal: - whywhynot: A1 Incubating - plenitude: A1 Incubating -Status: open +Status: open +Record: `decisions/DEC-001-activation-levels.md` --- @@ -24,7 +34,8 @@ Status: open Should `tegwick-control` be treated as the root control repo for the whole landscape? -Status: open +Status: open +Record: `decisions/DEC-002-root-control-repo.md` --- @@ -34,4 +45,5 @@ None yet. ## Decision Record Format -Use `templates/decision-record.md` for structured decision records. +Copy `templates/decision-record.md` into `decisions/DEC-NNN-.md` and add +a registry row above. See `decisions/README.md` for layout and lifecycle. \ No newline at end of file diff --git a/INTAKE.md b/INTAKE.md new file mode 100644 index 0000000..8b63622 --- /dev/null +++ b/INTAKE.md @@ -0,0 +1,128 @@ +# Intake Pipeline + +## Purpose + +This document defines how personal projects, commitments, and agent work enter +`tegwick-control` without turning every idea into immediate obligation. + +## Principle + +Capture is not commitment. Items move through explicit stages; each stage has +a home and a clear exit criterion. + +## Stages + +### Stage 0 — Capture + +Save loose material without classifying it. + +| Location | Use for | +|---|---| +| `inbox/` | Rough notes, pasted thoughts, urgent fragments, questions | + +**Exit:** Item is saved and no longer held in memory. + +--- + +### Stage 1 — Triage + +During weekly or monthly review, decide what the item is. + +| Question | Guides toward | +|---|---| +| Is this a one-off action? | `TASKS.md` | +| Does it belong to a known area? | `areas/.md` | +| Does it need a choice before action? | `decisions/` | +| Is it multi-step structured work? | `workplans/` | +| Is it bounded agent work in this repo? | `agent-tasks/` | +| Is it implementation work in another repo? | Agent task + target repo | +| Is it interesting but not active? | Area card options, or park | +| Is it noise? | Delete or archive from inbox | + +**Outcomes:** route, park, merge, or reject. Do not create commitments during +capture. + +--- + +### Stage 2 — Classify + +Assign a work class (see `OPERATING_MODEL.md`): + +| Class | Typical home | +|---|---| +| Commitment | `TASKS.md` + area card | +| Option | Area card `Options` section | +| Exploration | Area card or `inbox/` until clearer | +| Decision | `decisions/DEC-NNN-.md` | +| Waiting | `TASKS.md` (Waiting section) | +| Routine | Area card or `REVIEW_RHYTHM.md` | +| Someday | Area card, A0/A1 only | + +--- + +### Stage 3 — Prepare + +Before agent delegation or activation: + +1. Confirm activation level in `PROJECT_LANDSCAPE.md` and the area card. +2. Define boundaries (allowed/forbidden changes, approval gates). +3. For repo work: name target repo, expected output, acceptance criteria. +4. For decisions: write options and consequences before choosing. + +**Agent tasks** use `templates/agent-task.md`. +**Decisions** use `templates/decision-record.md`. +**Multi-task work** uses `workplans/TEGWICK-WP-NNNN-.md`. + +--- + +### Stage 4 — Activate + +A item becomes active work only when it has: + +- an owner; +- a clear next action; +- a reason for acting now; +- a defined review surface. + +Commitments appear in `TASKS.md`. Structured strands appear in `workplans/`. +Bounded agent prompts appear in `agent-tasks/`. + +--- + +### Stage 5 — Review and Close + +| Surface | Review question | +|---|---| +| `TASKS.md` | Still a true commitment? | +| `decisions/` | Resolved, superseded, or still open? | +| `agent-tasks/` | Done, blocked, or needs rescoping? | +| `workplans/` | Tasks progressing; workstream still aligned? | +| `areas/` | Activation level and next surface still correct? | + +Use `templates/weekly-review.md` for the weekly pass. + +## Folder Map + +```text +inbox/ temporary capture (Stage 0) +areas/ per-topic control cards (organizations and life domains) +TASKS.md current commitments index +decisions/ structured decision records (append-only log) +DECISIONS.md decision registry (open + resolved index) +agent-tasks/ bounded, approval-aware agent prompts for this repo +workplans/ State Hub–synced multi-task workstreams +templates/ blank forms for cards, tasks, decisions, reviews +``` + +## Activation Guardrail + +Do not promote A1 Incubating topics to A2 Active or A3 Critical without an +explicit decision in `decisions/` and human approval per `AGENT_RULES.md`. + +## Current Prioritized Workstream + +After intake scaffold (TEGWICK-WP-0002), the first prioritized workstream is +**Binky critical path visibility** — see `workplans/TEGWICK-WP-0003-binky-critical-path.md`. + +This follows `PROJECT_LANDSCAPE.md` current focus: stabilize `tegwick-control`, +then make Binky's survival situation explicit without solving everything at once. \ No newline at end of file diff --git a/OPERATING_MODEL.md b/OPERATING_MODEL.md index a90f341..5492b67 100644 --- a/OPERATING_MODEL.md +++ b/OPERATING_MODEL.md @@ -43,9 +43,13 @@ The purpose is continuous progress, not constant pressure. | Surface | Purpose | |---|---| | `TASKS.md` | Current actionable work | -| `DECISIONS.md` | Open and resolved decisions | +| `DECISIONS.md` | Decision registry (index) | +| `decisions/` | Structured decision records | +| `INTAKE.md` | Capture-to-commitment pipeline | | `PROJECT_LANDSCAPE.md` | Major topic map | | `areas/` | Per-topic notes and control cards | +| `agent-tasks/` | Bounded agent prompts | +| `workplans/` | Prioritized multi-task workstreams | | `WORKPLAN.md` | Sequenced setup plan | | `inbox/` | Temporary capture area | diff --git a/README.md b/README.md index 058e220..3492498 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,20 @@ Start here: 1. Read `INTENT.md`. 2. Review `PROJECT_LANDSCAPE.md`. -3. Use `WORKPLAN.md` to establish the repository step by step. -4. Capture loose thoughts in `inbox/`. -5. Convert only selected items into commitments in `TASKS.md`. +3. Read `INTAKE.md` for how items move from capture to commitment. +4. Use `WORKPLAN.md` to establish the repository step by step. +5. Capture loose thoughts in `inbox/`. +6. Convert only selected items into commitments in `TASKS.md`. + +## Intake Surfaces + +| Surface | Role | +|---|---| +| `inbox/` | Temporary capture | +| `INTAKE.md` | Triage and routing pipeline | +| `decisions/` | Structured decision log | +| `agent-tasks/` | Bounded agent prompts | +| `workplans/` | Prioritized multi-task workstreams | ## Core Principle diff --git a/agent-tasks/README.md b/agent-tasks/README.md new file mode 100644 index 0000000..072adc5 --- /dev/null +++ b/agent-tasks/README.md @@ -0,0 +1,82 @@ +# Agent Tasks + +Bounded, approval-aware prompts for agents working in `tegwick-control`. + +## When to use + +Create an agent task when: + +- the work stays inside this repository (drafting, structuring, summarizing); +- boundaries and forbidden changes are clear; +- human approval gates are explicit; +- the task is ready to hand to an agent without further triage. + +Do **not** use agent tasks for: + +- implementation work in other repos (prepare the prompt here, execute elsewhere); +- legal, tax, or financial conclusions; +- converting options into commitments without approval. + +## Layout + +```text +agent-tasks/ +├── README.md this file +├── --.md ready agent prompts +└── archive/ completed or superseded tasks +``` + +Flat layout by default. Move finished tasks to `archive/` during review. + +## Naming + +```text +--.md +``` + +| Segment | Examples | +|---|---| +| area | `tegwick`, `binky`, `helix`, `coulomb` | +| action | `review`, `surface`, `draft`, `classify` | +| subject | `critical-path`, `area-cards`, `migration-slice` | + +Examples: + +- `binky-surface-critical-path.md` +- `tegwick-review-area-cards.md` + +## File format + +Copy `templates/agent-task.md` and fill every section. Required sections: + +- Goal +- Context +- Allowed Changes +- Forbidden Changes +- Expected Output +- Acceptance Criteria +- Human Approval Required For + +## Lifecycle + +| State | Meaning | Location | +|---|---|---| +| Seed | Bootstrap or historical reference | root or `archive/` | +| Ready | Approved for agent execution | root | +| Done | Completed; move to `archive/` | `archive/` | + +Track state in the task file header: + +```markdown +Status: ready | done | superseded +Workplan: TEGWICK-WP-NNNN (if linked) +Area: binky | tegwick | helix | ... +``` + +## Intake path + +```text +inbox/ → triage (INTAKE.md) → agent-tasks/ → agent session → archive/ +``` + +See `INTAKE.md` for the full pipeline. \ No newline at end of file diff --git a/agent-tasks/archive/.gitkeep b/agent-tasks/archive/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/agent-tasks/binky-surface-critical-path.md b/agent-tasks/binky-surface-critical-path.md new file mode 100644 index 0000000..d49390f --- /dev/null +++ b/agent-tasks/binky-surface-critical-path.md @@ -0,0 +1,72 @@ +# Agent Task: Surface Binky critical path + +Status: ready +Workplan: TEGWICK-WP-0003 +Area: binky + +## Goal + +Populate `areas/binky-company.md` with an initial critical-path view: open +obligations, survival risks, business model options, and the next visible +surfaces — without making legal, tax, or financial conclusions. + +## Context + +Binky is A3 Critical in `PROJECT_LANDSCAPE.md`. The area card is still seed +content. TEGWICK-WP-0003 breaks visibility work into structured tasks. This +agent task covers the drafting pass across T01–T03. + +Human must supply or confirm factual details (dates, amounts, filing status). +Use `[NEEDS HUMAN INPUT]` markers where facts are unknown. + +## Inputs + +- `areas/binky-company.md` +- `PROJECT_LANDSCAPE.md` +- `WORKPLAN.md` (Phase 2) +- `workplans/TEGWICK-WP-0003-binky-critical-path.md` +- `INTAKE.md`, `AGENT_RULES.md` + +## Allowed Changes + +The agent may: + +- edit `areas/binky-company.md` (Current State, Commitments, Options, Risks, + Open Decisions, Next Surface); +- add clearly marked placeholders for unknown facts; +- propose draft entries for `TASKS.md` (T04, T05) as commented suggestions in + the area card, not as live commitments. + +## Forbidden Changes + +The agent must not: + +- state legal, tax, or accounting conclusions as facts; +- create payment, filing, or contract instructions; +- add secrets, credentials, or private account data; +- mark items as commitments in `TASKS.md` without explicit human approval; +- change Binky's activation level; +- create or modify other repositories. + +## Expected Output + +Updated `areas/binky-company.md` containing: + +1. **Open obligations** — legal, tax, accounting (with unknowns marked). +2. **Survival risks** — ranked by urgency where possible. +3. **Business model options** — separated from commitments. +4. **Next surface** — what human review should tackle first. + +## Acceptance Criteria + +- Area card is no longer generic seed text in the critical-path sections. +- Options and commitments are clearly separated. +- No item is presented as resolved fact without source or human confirmation. +- TEGWICK-WP-0003 T01–T03 can be marked done after human review of the draft. + +## Human Approval Required For + +- Converting any draft item into a `TASKS.md` commitment; +- Changing activation level; +- Any statement presented as legal, tax, or financial fact; +- Contacting advisors, authorities, or third parties. \ No newline at end of file diff --git a/decisions/DEC-001-activation-levels.md b/decisions/DEC-001-activation-levels.md new file mode 100644 index 0000000..4bed3b0 --- /dev/null +++ b/decisions/DEC-001-activation-levels.md @@ -0,0 +1,53 @@ +# Decision: Confirm initial activation levels + +Status: Open +Date: 2026-06-22 +Record: DEC-001 + +## Context + +`PROJECT_LANDSCAPE.md` assigns activation levels to each organization in the +forge landscape. These levels govern how much delivery pressure each topic +receives and which items may become commitments. + +## Options + +### Option 1 — Accept draft levels as proposed + +| Organization | Level | +|---|---| +| binky | A3 Critical | +| tegwick | A2 Active | +| helix | A2 Active | +| coulomb | A1/A2 Controlled | +| sloppers | A1 Incubating | +| whywhynot | A1 Incubating | +| plenitude | A1 Incubating | + +### Option 2 — Adjust before accepting + +Change one or more levels after review of current energy, obligations, and +survival priorities. + +### Option 3 — Defer + +Keep levels as draft annotations until Binky critical path is visible +(TEGWICK-WP-0003). + +## Decision + +Pending human confirmation. + +## Rationale + +(To be filled when accepted or rejected.) + +## Consequences + +Accepted levels flow into area cards, `TASKS.md` prioritization, and agent task +approval boundaries. + +## Review + +Revisit during monthly landscape review or when Binky stabilization changes +survival pressure. \ No newline at end of file diff --git a/decisions/DEC-002-root-control-repo.md b/decisions/DEC-002-root-control-repo.md new file mode 100644 index 0000000..2208ab2 --- /dev/null +++ b/decisions/DEC-002-root-control-repo.md @@ -0,0 +1,46 @@ +# Decision: Confirm tegwick-control as root control repo + +Status: Open +Date: 2026-06-22 +Record: DEC-002 + +## Context + +Multiple organizations (binky, helix, coulomb, sloppers, whynot, plenitude) +each may eventually have their own control repositories. The landscape needs a +single personal operating layer that coordinates without absorbing all work. + +## Options + +### Option 1 — tegwick-control is the root control repo + +`tegwick-control` holds the personal landscape map, cross-org priorities, and +intake pipeline. Organization-specific control repos (e.g. `whynot-control`) +handle domain-specialized intake. + +### Option 2 — Shared neutral repo + +A non-personal-named repo serves as root; tegwick-control becomes one area +among equals. + +### Option 3 — Defer + +Operate with tegwick-control as provisional root until another structure proves +necessary. + +## Decision + +Pending human confirmation. + +## Rationale + +(To be filled when accepted or rejected.) + +## Consequences + +If Option 1 is accepted, landscape reviews, activation guardrails, and +cross-org workstream priority default to this repository. + +## Review + +Revisit if a second root-level control repo creates conflicting priorities. \ No newline at end of file diff --git a/decisions/README.md b/decisions/README.md new file mode 100644 index 0000000..69d0c0b --- /dev/null +++ b/decisions/README.md @@ -0,0 +1,57 @@ +# Decision Log + +Structured, append-only decision records for `tegwick-control`. + +## Purpose + +Decisions that affect activation levels, commitments, governance, or landscape +priority belong here — not only as inbox notes or task bullets. + +## Layout + +```text +decisions/ +├── README.md this file +├── DEC-NNN-.md individual decision records +└── archive/ superseded records (optional) +``` + +## Naming + +```text +DEC-NNN-.md +``` + +- `NNN` — three-digit sequence (`001`, `002`, …) +- `slug` — short kebab-case topic (`activation-levels`, `root-control-repo`) + +## Registry + +`DECISIONS.md` at the repo root is the **index**: open decisions, resolved +decisions, and pointers to full records in this folder. + +When creating a new decision: + +1. Allocate the next `DEC-NNN` id from `DECISIONS.md`. +2. Copy `templates/decision-record.md` into `decisions/DEC-NNN-.md`. +3. Add a summary entry to `DECISIONS.md` under Open or Resolved. + +## Status values + +| Status | Meaning | +|---|---| +| Open | Under consideration; no choice yet | +| Accepted | Decision made and in effect | +| Rejected | Option explicitly declined | +| Superseded | Replaced by a later decision | + +Update both the record file and `DECISIONS.md` when status changes. + +## Intake path + +```text +inbox/ or area card → triage → decisions/DEC-NNN-.md → DECISIONS.md index +``` + +Agents may draft decision records but must not mark `Accepted` without human +approval per `AGENT_RULES.md`. \ No newline at end of file diff --git a/decisions/archive/.gitkeep b/decisions/archive/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/workplans/TEGWICK-WP-0002-personal-project-intake.md b/workplans/TEGWICK-WP-0002-personal-project-intake.md index 5d6ff80..715e706 100644 --- a/workplans/TEGWICK-WP-0002-personal-project-intake.md +++ b/workplans/TEGWICK-WP-0002-personal-project-intake.md @@ -4,11 +4,11 @@ type: workplan title: "Personal project intake scaffold" domain: consumer repo: tegwick-control -status: ready +status: finished owner: codex topic_slug: consumer created: "2026-06-22" -updated: "2026-06-22" +updated: "2026-06-24" state_hub_workstream_id: "5aaec153-30f4-4978-bca8-af6e0e87712a" --- @@ -20,9 +20,19 @@ Establish the personal control-plane intake pattern for projects and commitments ```task id: TEGWICK-WP-0002-T01 -status: todo +status: done priority: high state_hub_task_id: "85f808b2-d9a6-4638-a8a6-c7a276c09a33" ``` -Define folder/layout for `agent-tasks/`, decision log, and first prioritized workstream. +Result 2026-06-24: + +- Added `INTAKE.md` — capture-to-commitment pipeline (Stages 0–5). +- Added `agent-tasks/README.md` — layout, naming, lifecycle. +- Added `decisions/README.md` — decision log layout and registry rules. +- Seeded `decisions/DEC-001-activation-levels.md` and `DEC-002-root-control-repo.md`. +- Updated `DECISIONS.md`, `README.md`, and `OPERATING_MODEL.md` cross-references. +- Created first prioritized workstream: `workplans/TEGWICK-WP-0003-binky-critical-path.md`. +- Seeded `agent-tasks/binky-surface-critical-path.md` for WP-0003 execution. + +Define folder/layout for `agent-tasks/`, decision log, and first prioritized workstream. \ No newline at end of file diff --git a/workplans/TEGWICK-WP-0003-binky-critical-path.md b/workplans/TEGWICK-WP-0003-binky-critical-path.md new file mode 100644 index 0000000..ad38f11 --- /dev/null +++ b/workplans/TEGWICK-WP-0003-binky-critical-path.md @@ -0,0 +1,80 @@ +--- +id: TEGWICK-WP-0003 +type: workplan +title: "Binky critical path visibility" +domain: consumer +repo: tegwick-control +status: ready +owner: codex +topic_slug: consumer +created: "2026-06-24" +updated: "2026-06-24" +state_hub_workstream_id: "093004ac-5683-4599-bea2-7b0670728bdb" +--- + +# Binky critical path visibility + +Make the company rescue situation explicit without trying to solve everything at +once. First prioritized workstream after intake scaffold (TEGWICK-WP-0002). + +Aligns with `PROJECT_LANDSCAPE.md` current focus #2 and `WORKPLAN.md` Phase 2. + +## Surface legal and tax obligations + +```task +id: TEGWICK-WP-0003-T01 +status: todo +priority: high +state_hub_task_id: "cf83e727-029e-4ab4-a23b-e9064aa2b257" +``` + +List open legal, accounting, and tax obligations in `areas/binky-company.md`. +Use placeholders where facts are unknown; mark items needing human input. + +## Surface business model options + +```task +id: TEGWICK-WP-0003-T02 +status: todo +priority: medium +state_hub_task_id: "ed901e89-2df6-45ce-b802-8d9731627032" +``` + +List known business model options and revenue paths in `areas/binky-company.md`. +Distinguish options from commitments. + +## Identify survival risks + +```task +id: TEGWICK-WP-0003-T03 +status: todo +priority: high +state_hub_task_id: "95bad704-f1f3-48a3-88ee-6becad22b66d" +``` + +List urgent company survival risks (cash, compliance, contracts, liability). +No legal conclusions — visibility only. + +## First advisor reactivation step + +```task +id: TEGWICK-WP-0003-T04 +status: todo +priority: high +state_hub_task_id: "73bae17c-383b-406a-8dab-97bebf056846" +``` + +Identify the smallest next step to re-engage accountant or tax advisor. +Record as a single actionable item in `TASKS.md` when ready. + +## First revenue offer candidate + +```task +id: TEGWICK-WP-0003-T05 +status: todo +priority: medium +state_hub_task_id: "a70f6ae8-22f3-461e-9527-f1fcbbcfdbe7" +``` + +Identify one revenue-oriented offer candidate worth exploring. +Keep as option until explicitly promoted to commitment. \ No newline at end of file From 74b88d97177cf6e3140815802e1bd35e03f8b07b Mon Sep 17 00:00:00 2001 From: tegwick Date: Wed, 24 Jun 2026 18:37:36 +0200 Subject: [PATCH 07/10] chore(consistency): sync task status from DB [auto] Updated by fix-consistency on 2026-06-24: - update .custodian-brief.md for tegwick-control --- .custodian-brief.md | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/.custodian-brief.md b/.custodian-brief.md index 59e45f9..ca94e73 100644 --- a/.custodian-brief.md +++ b/.custodian-brief.md @@ -2,20 +2,12 @@ # Custodian Brief — tegwick-control **Domain:** consumer -**Last synced:** 2026-06-24 13:25 UTC +**Last synced:** 2026-06-24 16:37 UTC **State Hub:** http://127.0.0.1:8000 *(adjust if running on a remote machine)* ## Active Workstreams -### Binky critical path visibility -Progress: 0/5 done | workstream_id: `093004ac-5683-4599-bea2-7b0670728bdb` - -**Open tasks:** -- · Surface legal and tax obligations `cf83e727` -- · Surface business model options `ed901e89` -- · Identify survival risks `95bad704` -- · First advisor reactivation step `73bae17c` -- · First revenue offer candidate `a70f6ae8` +*(none — repo may need first-session setup)* --- ## MCP Orientation (when available) From e6712819e8c3351b8a89374223874a5f7011b56b Mon Sep 17 00:00:00 2001 From: tegwick Date: Wed, 24 Jun 2026 18:37:46 +0200 Subject: [PATCH 08/10] Complete TEGWICK-WP-0003: Binky critical path visibility Surface open obligations, survival risks, and business model options in areas/binky-company.md using archive notes and marked unknowns. Add BINKY-001 (FSW status-briefing email) as the first advisor reactivation step. --- TASKS.md | 16 ++ agent-tasks/binky-surface-critical-path.md | 5 +- areas/binky-company.md | 153 +++++++++++++++--- .../TEGWICK-WP-0003-binky-critical-path.md | 28 +++- 4 files changed, 174 insertions(+), 28 deletions(-) diff --git a/TASKS.md b/TASKS.md index 9006859..f64c239 100644 --- a/TASKS.md +++ b/TASKS.md @@ -50,6 +50,22 @@ Activation: A2 Create an initial list of legal, tax, accounting, and business activation issues in `areas/binky-company.md`. +Status: done +Class: commitment +Area: binky +Activation: A3 + +### BINKY-001 — Re-engage tax advisor (FSW) for status briefing + +Send one email to FSW (e.g. `a.schulz@fsw.tax`) requesting a concise status +briefing on: + +- Jahresabschluss 2023 — filed, pending, or blocked? +- Why DATEV Unternehmen Online is still billing and what can be paused +- Open accounting/tax items for 2024 and 2025 + +Do not negotiate scope or fees in this first contact — visibility only. + Status: open Class: commitment Area: binky diff --git a/agent-tasks/binky-surface-critical-path.md b/agent-tasks/binky-surface-critical-path.md index d49390f..dc57e3d 100644 --- a/agent-tasks/binky-surface-critical-path.md +++ b/agent-tasks/binky-surface-critical-path.md @@ -1,8 +1,9 @@ # Agent Task: Surface Binky critical path -Status: ready +Status: done Workplan: TEGWICK-WP-0003 -Area: binky +Area: binky +Completed: 2026-06-24 ## Goal diff --git a/areas/binky-company.md b/areas/binky-company.md index 9e96ede..8c7710f 100644 --- a/areas/binky-company.md +++ b/areas/binky-company.md @@ -2,11 +2,16 @@ ## Purpose -Corporate information space and rescue/control surface for the GmbH founded in 2019. +Corporate information space and rescue/control surface for **Binky Hedgehog GmbH** +(GmbH founded 2019). ## Strategic Role -This area contributes to the broader landscape by holding a distinct role in the personal, corporate, technical, community, prototype, or commercial operating model. +Binky is the **Survival / Legitimacy Layer** in `PROJECT_LANDSCAPE.md`. It +stabilizes the legal and business vehicle so Helix, Coulomb, and commercial +layers can operate without personal-liability drift. Personal liquidity and +company liquidity are currently entangled — visibility here is meant to reduce +that pressure without pretending the situation is resolved. ## Activation Level @@ -14,42 +19,152 @@ A3 Critical ## Current State -Initial area card created during `tegwick-control` seeding. Needs review and refinement. +Rescue mode. The company is legally active but under liquidity and compliance +pressure. Known facts (from local archive notes, March 2026 — not verified as +legal/accounting conclusions): + +- **Entity:** Binky Hedgehog GmbH. +- **Tax advisor:** FSW (`fsw.tax`); prior contact Andrea Schulz + (`a.schulz@fsw.tax`). Jahresabschluss 2023 document bundle received from FSW + (March 2025); **filing/completion status unclear** — operator notes the + Jahresabschluss 2023 as still missing on their side. +- **Accounting platform:** DATEV Unternehmen Online — FSW continues billing; + purpose and necessity **unclear**. +- **Banking:** Qonto. Operator notes insufficient balance for upcoming Binect + desk (Schreibtisch) charge and general short-term coverage. +- **Office:** Binect desk rental — contract extensions exist for 2025 and 2026; + operator chose to continue but lacks liquidity to run the company comfortably. +- **Meeting room (HUB31):** Usage with Binect not yet settled; operator intends + to invoice Binect (~€450 for 2 days at 25% of official room rate) and book as + Binky income — **not yet done**. +- **Revenue (partial):** Coulomb member `tegwick` pays €8.99/mo via Stripe + (net ~€8.55 to binky-hedgehog from November 2025). Customer cost-pass-through + billing not active. +- **Costs paid privately (leakage):** Bubble.io ~$32/mo; various AI + subscriptions; infrastructure partly on company, partly unclear. +- **External context:** Inquiry related to Familiengericht noted in operator + archive — **details and company impact unknown**. + +This card replaces generic seed content. Items below separate **visibility** +from **commitment**. + +## Open Obligations + +Legal, accounting, and tax surfaces that appear open or need human confirmation. +No filing instructions — list only. + +| # | Obligation | Status / notes | Human input | +|---|---|---|---| +| 1 | **Jahresabschluss 2023** — prepare, approve, file, publish | Documents received from FSW; operator still treats 2023 close as open | Confirm filed vs. draft-only; deadline exposure | +| 2 | **Jahresabschluss 2024** | Not surfaced in archive | `[NEEDS HUMAN INPUT]` — started? advisor engaged? | +| 3 | **Jahresabschluss 2025** (and ongoing bookkeeping) | Not surfaced | `[NEEDS HUMAN INPUT]` — current books state | +| 4 | **Corporate income tax / trade tax returns** tied to above periods | Unknown filing state | `[NEEDS HUMAN INPUT]` | +| 5 | **VAT (USt)** — registration, returns, reconciliation | Unknown | `[NEEDS HUMAN INPUT]` — is Binky USt-pflichtig? | +| 6 | **DATEV Unternehmen Online** | FSW still billing | Confirm what it is used for; can it be paused? | +| 7 | **Gesellschafterversammlung / GF-Beschlüsse** for annual statements | 2023 GV protocol exists in FSW bundle | Confirm 2024+ governance actions | +| 8 | **Binect desk (Schreibtisch) contract** | Extended 2025–2026; payment pressure on Qonto | Confirm next due date and amount | +| 9 | **HUB31 / Binect meeting-room settlement** | Unsettled; income not yet booked | Confirm counterparty, invoice terms, VAT treatment | +| 10 | **Handelsregister / Geschäftsführer disclosures** | Not reviewed | `[NEEDS HUMAN INPUT]` | +| 11 | **Social insurance / GF-Beiträge** | Not reviewed | `[NEEDS HUMAN INPUT]` | +| 12 | **Intercompany / private-company boundary** — Bubble, AI tools, hosting | Costs paid privately | Classify and formalize or stop leakage | +| 13 | **Familiengericht-related inquiry** | Mentioned in operator notes | `[NEEDS HUMAN INPUT]` — scope and deadlines | ## Commitments -- Clarify current state. -- Identify true commitments separately from options. -- Define the next useful surface. +True commitments only (see `TASKS.md` for actionable items): + +- Make the rescue situation explicit — **in progress via TEGWICK-WP-0003** (this + card). +- **BINKY-001** — smallest advisor reactivation step (see `TASKS.md`). + +Not commitments (remain options until promoted): + +- Any revenue model below. +- Extending or terminating Binect desk beyond existing signed extensions. +- Full accounting cleanup beyond the first advisor contact. ## Options -- Collect ideas without activating them. -- Prepare future repo structures if needed. -- Create agent tasks only after boundaries are clear. +Business model and revenue paths — **not commitments**: + +| Option | Description | Signal / evidence | +|---|---|---| +| **Coulomb membership billing** | Subscription-style access to Coulomb / observatory stack | One paying member (`tegwick`, ~€8.55/mo net); infrastructure costs exceed revenue today | +| **Meeting-room subletting / agency** | Charge Binect (or others) for HUB31 room access at agreed share of list price | Draft economics: €450 for 2-day booking; not yet invoiced | +| **Helix-built information products** | Ship small products through Helix; Binky as invoicing entity | Aligns with landscape; no offer packaged yet | +| **Binect-JS / developer tooling** | Commercial SDK + Explorer (`binect-js` repo) | Product exists; publication/commercial path open | +| **Consulting / integration services** | Binect API, agentic workflow, markdown/doc tooling | Skills and repos exist; no positioned offer | +| **Plenitude as commercial front** | Route offers through Plenitude store when ready | Plenitude still A1 Incubating | +| **Wind-down / dormancy** | Reduce scope, cut recurring costs, minimal compliance mode | `[NEEDS HUMAN INPUT]` — viability vs. rescue intent | + +### First revenue offer candidate (explore, not commit) + +**Coulomb membership / observatory access** — extend the existing €8.99/mo +pattern to a small number of known users before building a full Plenitude +storefront. Lowest friction because payment rail and hosting already exist; +gap is positioning, pricing clarity, and cost coverage math (see +`adaptive-pricing/projects/coulomb-pricing`). ## Open Decisions -- Is the activation level correct? -- What is the first next action? -- Which existing repos, notes, or systems belong here? +- Is A3 Critical still correct, or does visibility alone change the urgency + profile? +- Jahresabschluss 2023: filed, stuck, or only documents received? +- Keep DATEV Unternehmen Online while cash-constrained? +- Keep Binect desk through 2026 or seek cheaper legitimacy anchor? +- Which private-paid costs (Bubble, AI) must move onto company books vs. stop? +- Promote Coulomb membership from option to committed offer — when and at what + price point? +- Wind-down vs. rescue — is that even on the table? ## Risks -- Treating this area as urgent merely because it is interesting. -- Creating too many repos before the control surface is stable. -- Delegating agent work without clear boundaries. +Survival risks ranked by apparent urgency (visibility only — not legal +conclusions): + +| Priority | Risk | Why it matters | +|---|---|---| +| **P0** | **Cash / liquidity gap** | Qonto cannot cover imminent Binect desk; operator lacks private funds to bridge | +| **P0** | **Accounting / tax backlog** | 2023 close unclear; 2024+ unknown — penalties and GF liability exposure possible | +| **P1** | **Private-company cost leakage** | Bubble, AI, and other tools paid privately erode runway and blur liability | +| **P1** | **Unbooked receivable** | HUB31/Binect settlement (~€450) not invoiced — income and VAT treatment delayed | +| **P1** | **Recurring costs vs. revenue** | Infrastructure (~€30+/mo domains/hosting) vs. ~€8.55/mo revenue | +| **P2** | **Advisor relationship drift** | FSW engaged historically; no recent status sync — open items may accumulate silently | +| **P2** | **Contract continuity pressure** | Desk extended to 2026 while liquidity failing — mismatch between commitment and capacity | +| **P2** | **Familiengericht context** | Unknown scope — may add personal distraction or disclosure obligations | +| **P3** | **Control-repo false comfort** | Documenting risks without BINKY-001 leaves pressure diffuse | ## Agentic Suitability -Agents may help draft, organize, summarize, classify, and prepare scoped tasks. +Agents may: -Agents must not convert options into commitments without explicit approval. +- draft and structure obligation/risk/option lists; +- cross-reference landscape and archive notes; +- prepare scoped tasks and decision records; +- summarize economics from non-secret project docs. + +Agents must not: + +- state tax, legal, or filing conclusions as facts; +- contact FSW, Binect, Finanzamt, or courts; +- move money, file returns, or sign contracts; +- promote options to commitments without human approval. ## Next Surface -Review this area card and replace placeholders with actual current state, commitments, options, and risks. +1. **Human:** Execute **BINKY-001** — one email to FSW requesting status on + Jahresabschluss 2023, DATEV billing, and open 2024/2025 items. +2. **Human:** Confirm or correct every `[NEEDS HUMAN INPUT]` row in Open + Obligations. +3. **Human:** Decide whether to invoice Binect for HUB31 usage before next + liquidity crunch. +4. **Review:** After advisor reply, update this card and decide next commitment + (bookkeeping catch-up vs. cost reduction vs. revenue pilot). ## Notes -Initial seed content. +- Archive source: `~/2binky/archiv/` (operator notes March 2026; FSW + correspondence March 2025). +- Revenue reference: `adaptive-pricing/projects/coulomb-pricing/README.md`. +- Workplan: `workplans/TEGWICK-WP-0003-binky-critical-path.md`. +- Agent task: `agent-tasks/binky-surface-critical-path.md`. \ No newline at end of file diff --git a/workplans/TEGWICK-WP-0003-binky-critical-path.md b/workplans/TEGWICK-WP-0003-binky-critical-path.md index ad38f11..4aa88f9 100644 --- a/workplans/TEGWICK-WP-0003-binky-critical-path.md +++ b/workplans/TEGWICK-WP-0003-binky-critical-path.md @@ -4,7 +4,7 @@ type: workplan title: "Binky critical path visibility" domain: consumer repo: tegwick-control -status: ready +status: finished owner: codex topic_slug: consumer created: "2026-06-24" @@ -23,7 +23,7 @@ Aligns with `PROJECT_LANDSCAPE.md` current focus #2 and `WORKPLAN.md` Phase 2. ```task id: TEGWICK-WP-0003-T01 -status: todo +status: done priority: high state_hub_task_id: "cf83e727-029e-4ab4-a23b-e9064aa2b257" ``` @@ -31,11 +31,14 @@ state_hub_task_id: "cf83e727-029e-4ab4-a23b-e9064aa2b257" List open legal, accounting, and tax obligations in `areas/binky-company.md`. Use placeholders where facts are unknown; mark items needing human input. +Result 2026-06-24: Open Obligations table added to `areas/binky-company.md` +with 13 items; unknowns marked `[NEEDS HUMAN INPUT]`. + ## Surface business model options ```task id: TEGWICK-WP-0003-T02 -status: todo +status: done priority: medium state_hub_task_id: "ed901e89-2df6-45ce-b802-8d9731627032" ``` @@ -43,11 +46,14 @@ state_hub_task_id: "ed901e89-2df6-45ce-b802-8d9731627032" List known business model options and revenue paths in `areas/binky-company.md`. Distinguish options from commitments. +Result 2026-06-24: Options table (7 paths) in area card; separated from +Commitments section. + ## Identify survival risks ```task id: TEGWICK-WP-0003-T03 -status: todo +status: done priority: high state_hub_task_id: "95bad704-f1f3-48a3-88ee-6becad22b66d" ``` @@ -55,11 +61,13 @@ state_hub_task_id: "95bad704-f1f3-48a3-88ee-6becad22b66d" List urgent company survival risks (cash, compliance, contracts, liability). No legal conclusions — visibility only. +Result 2026-06-24: Prioritized P0–P3 risk table in area card. + ## First advisor reactivation step ```task id: TEGWICK-WP-0003-T04 -status: todo +status: done priority: high state_hub_task_id: "73bae17c-383b-406a-8dab-97bebf056846" ``` @@ -67,14 +75,20 @@ state_hub_task_id: "73bae17c-383b-406a-8dab-97bebf056846" Identify the smallest next step to re-engage accountant or tax advisor. Record as a single actionable item in `TASKS.md` when ready. +Result 2026-06-24: **BINKY-001** added to `TASKS.md` — single FSW status-briefing +email. + ## First revenue offer candidate ```task id: TEGWICK-WP-0003-T05 -status: todo +status: done priority: medium state_hub_task_id: "a70f6ae8-22f3-461e-9527-f1fcbbcfdbe7" ``` Identify one revenue-oriented offer candidate worth exploring. -Keep as option until explicitly promoted to commitment. \ No newline at end of file +Keep as option until explicitly promoted to commitment. + +Result 2026-06-24: Coulomb membership / observatory access documented as first +revenue candidate under Options (not promoted to commitment). \ No newline at end of file From 5155365b77f3486c8e9e080e03934a64147dc43a Mon Sep 17 00:00:00 2001 From: tegwick Date: Mon, 6 Jul 2026 18:50:37 +0200 Subject: [PATCH 09/10] Add registry/NO_CAPABILITIES.md (reuse-surface REUSE-WP-0017-T03) Reviewed for the reuse-surface capability registry coverage campaign; no reusable capability to register at this time. See file for rationale. Co-Authored-By: Claude Sonnet 5 --- registry/NO_CAPABILITIES.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 registry/NO_CAPABILITIES.md diff --git a/registry/NO_CAPABILITIES.md b/registry/NO_CAPABILITIES.md new file mode 100644 index 0000000..71ce5f7 --- /dev/null +++ b/registry/NO_CAPABILITIES.md @@ -0,0 +1,15 @@ +--- +repo: tegwick-control +reason: > + Personal life/company planning notes (areas/, agent-tasks/) — a private portfolio-tracking meta-repo, not a reusable product component. +reviewed: "2026-07-06" +reviewed_by: claude-code +revisit: > + Unlikely to become a reusable capability; revisit only if repurposed. +--- + +# No reusable capability + +This repo was reviewed for the `reuse-surface` capability registry +(REUSE-WP-0017 coverage campaign) and has no capability to register at this +time. See the `reason` field above. From e79cb2a0f8c4225c8d8657041ac60b1902db4fe2 Mon Sep 17 00:00:00 2001 From: tegwick Date: Wed, 8 Jul 2026 12:38:31 +0200 Subject: [PATCH 10/10] Add Forgejo CI smoke workflow (enablement template) --- .forgejo/workflows/ci-smoke.yaml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .forgejo/workflows/ci-smoke.yaml diff --git a/.forgejo/workflows/ci-smoke.yaml b/.forgejo/workflows/ci-smoke.yaml new file mode 100644 index 0000000..bd44c56 --- /dev/null +++ b/.forgejo/workflows/ci-smoke.yaml @@ -0,0 +1,29 @@ +# Canonical CI smoke template (tier 1 routing drill). +# Copy to: .forgejo/workflows/ci-smoke.yaml in consumer repos. +name: CI Smoke + +on: + push: + branches: + - main + workflow_dispatch: + +jobs: + host-smoke: + runs-on: self-hosted + steps: + - name: Routing probe (host runner) + run: | + set -eu + echo "repository=${GITHUB_REPOSITORY:-unknown}" + echo "sha=${GITHUB_SHA:-unknown}" + echo "runner=${RUNNER_NAME:-unknown}" + uname -a + + container-smoke: + runs-on: ubuntu-latest + steps: + - name: Routing probe (container label) + run: | + set -eu + echo "container-smoke ok for ${GITHUB_REPOSITORY:-unknown}" \ No newline at end of file