Compare commits
10 commits
5f0237b55c
...
e79cb2a0f8
| Author | SHA1 | Date | |
|---|---|---|---|
| e79cb2a0f8 | |||
| 5155365b77 | |||
| e6712819e8 | |||
| 74b88d9717 | |||
| d4080de393 | |||
| 4295d00d9a | |||
| 0ff4f84baf | |||
| c99af47c5c | |||
| 1a33dfa25c | |||
| 210402af45 |
30 changed files with 1369 additions and 29 deletions
20
.claude/rules/agents.md
Normal file
20
.claude/rules/agents.md
Normal file
|
|
@ -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.
|
||||
8
.claude/rules/architecture.md
Normal file
8
.claude/rules/architecture.md
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
## Architecture
|
||||
|
||||
<!-- TODO: Describe the key design decisions and component structure.
|
||||
Key modules, data flows, external integrations, state machines, etc. -->
|
||||
|
||||
## Quick Reference
|
||||
|
||||
`~/state-hub/mcp_server/TOOLS.md` — MCP tool reference
|
||||
50
.claude/rules/credential-routing.md
Normal file
50
.claude/rules/credential-routing.md
Normal file
|
|
@ -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 "<describe your need>" --json
|
||||
warden route show <catalog-id> --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`
|
||||
38
.claude/rules/first-session.md
Normal file
38
.claude/rules/first-session.md
Normal file
|
|
@ -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-<slug>.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="<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}
|
||||
)
|
||||
```
|
||||
|
||||
<!-- Delete or archive this file once past first session -->
|
||||
8
.claude/rules/repo-boundary.md
Normal file
8
.claude/rules/repo-boundary.md
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
## Repo boundary
|
||||
|
||||
This repo owns **Tegwick Control** only. It does not own:
|
||||
|
||||
<!-- TODO: List what belongs in adjacent repos, e.g.:
|
||||
- SSH key management → railiance-infra/
|
||||
- State hub code → state-hub/
|
||||
-->
|
||||
5
.claude/rules/repo-identity.md
Normal file
5
.claude/rules/repo-identity.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
**Purpose:** Tegwick Control - (fill in purpose)
|
||||
|
||||
**Domain:** consumer
|
||||
**Repo slug:** tegwick-control
|
||||
**Topic ID:** 4c2e5315-2cb9-447c-9d16-a39bdb0aabd0
|
||||
85
.claude/rules/session-protocol.md
Normal file
85
.claude/rules/session-protocol.md
Normal file
|
|
@ -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/<id>/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="<uuid>")
|
||||
```
|
||||
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":"<uuid>","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 <repo_path> 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.
|
||||
15
.claude/rules/stack-and-commands.md
Normal file
15
.claude/rules/stack-and-commands.md
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
## Stack
|
||||
|
||||
- **Language:** Markdown-first control/planning repository (no application runtime)
|
||||
- **Key deps:** State Hub workplans, agent instructions, optional `registry/` scaffold
|
||||
|
||||
## Dev Commands
|
||||
|
||||
```bash
|
||||
cat .custodian-brief.md
|
||||
cat INTENT.md
|
||||
ls workplans/
|
||||
|
||||
# After workplan edits — from ~/state-hub
|
||||
make fix-consistency REPO=tegwick-control
|
||||
```
|
||||
40
.claude/rules/workplan-convention.md
Normal file
40
.claude/rules/workplan-convention.md
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
## Workplan Convention (ADR-001)
|
||||
|
||||
File location: `workplans/TEGWICK-WP-NNNN-<slug>.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-<slug>.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: "<uuid>" # 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.
|
||||
|
||||
<!-- Ralph Loop rules and HEUREKA sequence: ~/.claude/CLAUDE.md — do not duplicate here -->
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
<!-- custodian-brief: generated by fix-consistency — do not edit manually -->
|
||||
# Custodian Brief — tegwick-control
|
||||
|
||||
**Domain:** (unknown)
|
||||
**Last synced:** 2026-06-22 16:04 UTC
|
||||
**Domain:** consumer
|
||||
**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
|
||||
|
|
@ -13,6 +13,6 @@
|
|||
## 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.
|
||||
|
|
|
|||
29
.forgejo/workflows/ci-smoke.yaml
Normal file
29
.forgejo/workflows/ci-smoke.yaml
Normal file
|
|
@ -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}"
|
||||
219
AGENTS.md
Normal file
219
AGENTS.md
Normal file
|
|
@ -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/<id>/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": "<uuid>",
|
||||
"task_id": "<uuid>"
|
||||
}'
|
||||
```
|
||||
|
||||
Omit `workstream_id` / `task_id` when not applicable.
|
||||
|
||||
### Update task status
|
||||
|
||||
```bash
|
||||
curl -s -X PATCH "http://127.0.0.1:8000/tasks/<task_id>" \
|
||||
-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/<task_id>" \
|
||||
-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 "<describe your need>" --json
|
||||
warden route show <catalog-id> --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`
|
||||
|
||||
<!-- REPO-AGENTS-EXTENSIONS -->
|
||||
<!-- Append repo-specific agent instructions below this marker.
|
||||
The state-hub template sync preserves content after this line. -->
|
||||
|
||||
---
|
||||
|
||||
## 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-<slug>.md`
|
||||
|
||||
**Archived location:** finished workplans may move to
|
||||
`workplans/archived/YYMMDD-TEGWICK-WP-NNNN-<slug>.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: "<uuid>" # 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: "<uuid>" # 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/`)
|
||||
12
CLAUDE.md
Normal file
12
CLAUDE.md
Normal file
|
|
@ -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
|
||||
18
DECISIONS.md
18
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-<slug>.md` and add
|
||||
a registry row above. See `decisions/README.md` for layout and lifecycle.
|
||||
128
INTAKE.md
Normal file
128
INTAKE.md
Normal file
|
|
@ -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/<area>.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-<slug>.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-<slug>.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.
|
||||
|
|
@ -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 |
|
||||
|
||||
|
|
|
|||
17
README.md
17
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
|
||||
|
||||
|
|
|
|||
16
TASKS.md
16
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
|
||||
|
|
|
|||
82
agent-tasks/README.md
Normal file
82
agent-tasks/README.md
Normal file
|
|
@ -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
|
||||
├── <area>-<action>-<subject>.md ready agent prompts
|
||||
└── archive/ completed or superseded tasks
|
||||
```
|
||||
|
||||
Flat layout by default. Move finished tasks to `archive/` during review.
|
||||
|
||||
## Naming
|
||||
|
||||
```text
|
||||
<area>-<action>-<subject>.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.
|
||||
0
agent-tasks/archive/.gitkeep
Normal file
0
agent-tasks/archive/.gitkeep
Normal file
73
agent-tasks/binky-surface-critical-path.md
Normal file
73
agent-tasks/binky-surface-critical-path.md
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
# Agent Task: Surface Binky critical path
|
||||
|
||||
Status: done
|
||||
Workplan: TEGWICK-WP-0003
|
||||
Area: binky
|
||||
Completed: 2026-06-24
|
||||
|
||||
## 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.
|
||||
|
|
@ -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`.
|
||||
53
decisions/DEC-001-activation-levels.md
Normal file
53
decisions/DEC-001-activation-levels.md
Normal file
|
|
@ -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.
|
||||
46
decisions/DEC-002-root-control-repo.md
Normal file
46
decisions/DEC-002-root-control-repo.md
Normal file
|
|
@ -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.
|
||||
57
decisions/README.md
Normal file
57
decisions/README.md
Normal file
|
|
@ -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-<slug>.md individual decision records
|
||||
└── archive/ superseded records (optional)
|
||||
```
|
||||
|
||||
## Naming
|
||||
|
||||
```text
|
||||
DEC-NNN-<slug>.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-<slug>.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-<slug>.md → DECISIONS.md index
|
||||
```
|
||||
|
||||
Agents may draft decision records but must not mark `Accepted` without human
|
||||
approval per `AGENT_RULES.md`.
|
||||
0
decisions/archive/.gitkeep
Normal file
0
decisions/archive/.gitkeep
Normal file
15
registry/NO_CAPABILITIES.md
Normal file
15
registry/NO_CAPABILITIES.md
Normal file
|
|
@ -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.
|
||||
67
workplans/TEGWICK-WP-0001-statehub-bootstrap.md
Normal file
67
workplans/TEGWICK-WP-0001-statehub-bootstrap.md
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
---
|
||||
id: TEGWICK-WP-0001
|
||||
type: workplan
|
||||
title: "Bootstrap State Hub integration"
|
||||
domain: consumer
|
||||
repo: tegwick-control
|
||||
status: finished
|
||||
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: 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.
|
||||
|
||||
## Verify Local Developer Workflow
|
||||
|
||||
```task
|
||||
id: TEGWICK-WP-0001-T02
|
||||
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.
|
||||
|
||||
## Seed First Real Workplan
|
||||
|
||||
```task
|
||||
id: TEGWICK-WP-0001-T03
|
||||
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`:
|
||||
|
||||
```bash
|
||||
make fix-consistency REPO=tegwick-control
|
||||
```
|
||||
38
workplans/TEGWICK-WP-0002-personal-project-intake.md
Normal file
38
workplans/TEGWICK-WP-0002-personal-project-intake.md
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
---
|
||||
id: TEGWICK-WP-0002
|
||||
type: workplan
|
||||
title: "Personal project intake scaffold"
|
||||
domain: consumer
|
||||
repo: tegwick-control
|
||||
status: finished
|
||||
owner: codex
|
||||
topic_slug: consumer
|
||||
created: "2026-06-22"
|
||||
updated: "2026-06-24"
|
||||
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: done
|
||||
priority: high
|
||||
state_hub_task_id: "85f808b2-d9a6-4638-a8a6-c7a276c09a33"
|
||||
```
|
||||
|
||||
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.
|
||||
94
workplans/TEGWICK-WP-0003-binky-critical-path.md
Normal file
94
workplans/TEGWICK-WP-0003-binky-critical-path.md
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
---
|
||||
id: TEGWICK-WP-0003
|
||||
type: workplan
|
||||
title: "Binky critical path visibility"
|
||||
domain: consumer
|
||||
repo: tegwick-control
|
||||
status: finished
|
||||
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: done
|
||||
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.
|
||||
|
||||
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: done
|
||||
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.
|
||||
|
||||
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: done
|
||||
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.
|
||||
|
||||
Result 2026-06-24: Prioritized P0–P3 risk table in area card.
|
||||
|
||||
## First advisor reactivation step
|
||||
|
||||
```task
|
||||
id: TEGWICK-WP-0003-T04
|
||||
status: done
|
||||
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.
|
||||
|
||||
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: 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.
|
||||
|
||||
Result 2026-06-24: Coulomb membership / observatory access documented as first
|
||||
revenue candidate under Options (not promoted to commitment).
|
||||
Loading…
Add table
Add a link
Reference in a new issue