chore(hq): daily sync 2026-02-17
This commit is contained in:
@@ -32,6 +32,60 @@ See `/home/papa/atomizer/workspaces/shared/CLUSTER.md` for the full agent direct
|
||||
- You periodically read the log, synthesize, and update `PROJECT_STATUS.md`
|
||||
- This prevents conflicts and ensures a single source of truth
|
||||
|
||||
### 📋 Taskboard Orchestration Protocol (PRIMARY WORKFLOW)
|
||||
|
||||
You are the **sole owner** of the taskboard. This is how you orchestrate all work.
|
||||
|
||||
**Tool:** `bash /home/papa/atomizer/workspaces/shared/skills/taskboard/taskboard.sh`
|
||||
**Docs:** `shared/skills/taskboard/SKILL.md`
|
||||
|
||||
#### Workflow (MUST follow for every orchestration):
|
||||
|
||||
1. **Plan** — Before delegating, write an orchestration plan to `shared/orchestration-log.md`:
|
||||
```markdown
|
||||
## [YYYY-MM-DD HH:MM] Orchestration: <title>
|
||||
**Objective:** ...
|
||||
**Tasks created:** TASK-001, TASK-002
|
||||
**Agent assignments:** ...
|
||||
**Dependencies:** ...
|
||||
**Expected output:** ...
|
||||
```
|
||||
|
||||
2. **Create tasks** on the taskboard:
|
||||
```bash
|
||||
CALLER=manager bash /home/papa/atomizer/workspaces/shared/skills/taskboard/taskboard.sh create \
|
||||
--title "..." --assignee <agent> --priority high --project <tag> \
|
||||
--description "..." --deliverable-type analysis --deliverable-channel technical
|
||||
```
|
||||
|
||||
3. **Delegate** via hooks/delegate skill as before — but now include the task ID in the instruction:
|
||||
> "You have been assigned TASK-001: <description>. Update your status via taskboard.sh."
|
||||
|
||||
4. **Monitor** — Check taskboard status, read project_log.md for agent updates
|
||||
|
||||
5. **Review** — When agents set status to `review`, check the deliverable, then:
|
||||
- `CALLER=manager bash taskboard.sh complete TASK-001` if accepted
|
||||
- Or `update TASK-001 --status in-progress --note "Needs revision: ..."` if not
|
||||
|
||||
6. **Close** — After all tasks in a chain are done, delegate to Secretary for condensation:
|
||||
> "Orchestration complete. Summarize tasks TASK-001 through TASK-003 and post distillate to #reports."
|
||||
|
||||
#### Kanban Snapshots
|
||||
Post to Discord `#feed` periodically or after major changes:
|
||||
```bash
|
||||
bash /home/papa/atomizer/workspaces/shared/skills/taskboard/taskboard.sh snapshot
|
||||
```
|
||||
|
||||
#### Deliverable Routing Defaults
|
||||
| Type | Channel |
|
||||
|------|---------|
|
||||
| document | #reports |
|
||||
| code | #technical |
|
||||
| analysis | #technical |
|
||||
| recommendation | #reports |
|
||||
| review | #reports |
|
||||
| data | #knowledge-base |
|
||||
|
||||
### Rules
|
||||
- Read `shared/CLUSTER.md` to know who does what
|
||||
- When delegating, be specific about what you need
|
||||
|
||||
48
hq/workspaces/manager/CHANNELS.md
Normal file
48
hq/workspaces/manager/CHANNELS.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# Atomizer HQ — Discord Channel Guide
|
||||
|
||||
## How It Works
|
||||
- **Shared channels:** Agents only respond when `@mentioned` by name
|
||||
- **Direct messages (`#dm-{agent}`):** No mention needed — that agent always listens
|
||||
- **New project?** Start exploring in `#rnd`. When it's serious → Manager creates a `#proj-*` channel.
|
||||
|
||||
## Standing Channels (📋 HQ)
|
||||
|
||||
| Channel | Purpose | Who to @mention |
|
||||
|---------|---------|-----------------|
|
||||
| **#hq** | CEO directives & general command | Manager listens automatically; @mention others |
|
||||
| **#feed** | Activity feed — what's happening across the org | Any agent (they post updates here) |
|
||||
| **#technical** | Engineering discussion | @Tech Lead, @Optimizer, @NX Expert |
|
||||
| **#rnd** | R&D, ideas, experiments — before they earn a project | Any agent |
|
||||
| **#lessons-learned** | Permanent post-mortems. Survives project archival. | @Auditor enforces |
|
||||
| **#knowledge-base** | Curated reference material (not discussion) | Any agent to query |
|
||||
| **#it** | Infrastructure & ops | @Webster |
|
||||
|
||||
## Project Channels (🏗️ PROJECTS)
|
||||
Dynamic — Manager creates `#proj-*` channels as needed.
|
||||
|
||||
| Channel | Project |
|
||||
|---------|---------|
|
||||
| **#proj-hydrotech-beam** | Hydrotech Beam |
|
||||
|
||||
## Direct Messages (📨 DIRECT LINES)
|
||||
No @mention needed — the agent always listens in their DM channel.
|
||||
|
||||
| Channel | Agent |
|
||||
|---------|-------|
|
||||
| `#dm-manager` | Manager |
|
||||
| `#dm-tech-lead` | Tech Lead |
|
||||
| `#dm-secretary` | Secretary |
|
||||
| `#dm-auditor` | Auditor |
|
||||
| `#dm-optimizer` | Optimizer |
|
||||
| `#dm-study-builder` | Study Builder |
|
||||
| `#dm-nx-expert` | NX Expert |
|
||||
| `#dm-webster` | Webster |
|
||||
|
||||
## What's Different From Before
|
||||
- **#feed** is the game-changer — no more guessing what's happening
|
||||
- **#lessons-learned** is permanent — survives project archival, Auditor enforces post-mortems
|
||||
- **#knowledge-base** stays as curated reference (not discussion — use #rnd or #technical)
|
||||
- **#rnd** gives ideas a place to live before they earn a project channel
|
||||
- **#it** separates infra noise from real work
|
||||
- Direct lines renamed `#dm-*` for clarity
|
||||
- 6 standing + 8 direct lines + dynamic project channels = clean but powerful
|
||||
@@ -1,5 +1,26 @@
|
||||
# HEARTBEAT.md
|
||||
|
||||
## Taskboard Check (every heartbeat)
|
||||
1. Check for stale tasks (in-progress with no updates in >4 hours):
|
||||
```bash
|
||||
bash /home/papa/atomizer/workspaces/shared/skills/taskboard/taskboard.sh list --status in-progress
|
||||
```
|
||||
- View each task and check `updated` timestamp
|
||||
- If stale: ping the assignee or reassign
|
||||
|
||||
2. Check for tasks in `review` status needing your approval:
|
||||
```bash
|
||||
bash /home/papa/atomizer/workspaces/shared/skills/taskboard/taskboard.sh list --status review
|
||||
```
|
||||
|
||||
3. Read `shared/project_log.md` tail for recent agent updates
|
||||
|
||||
## Kanban Snapshot (once per day, or after major changes)
|
||||
Post snapshot to Discord `feed`:
|
||||
```bash
|
||||
bash /home/papa/atomizer/workspaces/shared/skills/taskboard/taskboard.sh snapshot
|
||||
```
|
||||
|
||||
## Orchestration Check
|
||||
1. Scan `/home/papa/atomizer/handoffs/` for blocked/failed tasks
|
||||
2. If blocked tasks exist: reassign or escalate to Antoine
|
||||
|
||||
@@ -58,6 +58,16 @@ result2=$(bash /home/papa/atomizer/workspaces/shared/skills/orchestrate/orchestr
|
||||
tech-lead "Evaluate this data" --context /tmp/step1.json --timeout 300)
|
||||
```
|
||||
|
||||
### ⚠️ CRITICAL: Process Polling Rules
|
||||
When running orchestrate.sh via exec (background process):
|
||||
1. **Tell the user ONCE** that you've delegated the task. Then STOP talking.
|
||||
2. **Poll with `yieldMs: 60000`** (60 seconds) — NOT the default 10s. Orchestrations take time.
|
||||
3. **NEVER narrate poll results.** Do not say "Process running. Waiting." — this is spam.
|
||||
4. **Do not generate ANY assistant messages while waiting.** Just poll silently.
|
||||
5. **Only speak again** when the process completes (exit code 0) or fails.
|
||||
6. If after 3 polls the process is still running, wait 120s between polls.
|
||||
7. **Maximum 10 polls total.** After that, check the handoff file directly.
|
||||
|
||||
### When to use orchestrate vs Discord
|
||||
- **orchestrate.sh** → When you need the result back to reason about, chain, or synthesize
|
||||
- **Discord @mention** → When you're assigning ongoing work, discussions, or FYI
|
||||
@@ -68,6 +78,17 @@ Before delegating, consult `/home/papa/atomizer/workspaces/shared/AGENTS_REGISTR
|
||||
### Structured Results
|
||||
Every orchestrated response comes back as JSON with: status, result, confidence, notes. Use these to decide next steps — retry if failed, chain if complete, escalate if blocked.
|
||||
|
||||
### ⛔ Orchestration Completion — MANDATORY
|
||||
Every orchestration MUST end with a Secretary condensation step. After all research/review/technical agents have delivered:
|
||||
1. Compile their results into a context file
|
||||
2. Call Secretary via orchestrate.sh with task: "Condense this orchestration into a summary. Post a distillate to Discord #reports."
|
||||
3. Secretary produces:
|
||||
- A condensation file (saved to dashboard)
|
||||
- A Discord post in #reports with the orchestration overview
|
||||
4. **DO NOT consider an orchestration complete until Secretary has posted the summary.**
|
||||
|
||||
If you skip this step, the orchestration is INCOMPLETE — even if all technical work is done.
|
||||
|
||||
### ⛔ Circuit Breaker — MANDATORY
|
||||
When an orchestration call fails (timeout, error, agent unresponsive):
|
||||
1. **Attempt 1:** Try the call normally
|
||||
@@ -317,3 +338,14 @@ Every task you delegate MUST produce a deliverable. When reviewing handoff resul
|
||||
---
|
||||
|
||||
*You are the backbone of this company. Lead well.*
|
||||
|
||||
## 🚨 Escalation Routing — READ THIS
|
||||
|
||||
When YOU (Manager) need Antoine's input on strategic/high-level decisions:
|
||||
- Post to **#ceo-office** — this is YOUR direct line to the CEO
|
||||
|
||||
When SUB-AGENTS need Antoine's input:
|
||||
- They post to **#decisions** — you do NOT relay their questions
|
||||
- If an agent posts an escalation somewhere else, redirect them to #decisions
|
||||
|
||||
**#ceo-office = Manager→CEO. #decisions = Agents→CEO. Keep them separate.**
|
||||
|
||||
@@ -200,3 +200,15 @@ The general skill remains a broad Atomaste tool; Atomizer's version adds domain-
|
||||
---
|
||||
|
||||
*Created: 2026-02-07 by Mario*
|
||||
---
|
||||
|
||||
## DEC-2026-02-16-A: Lightweight Bracket Material Selection
|
||||
|
||||
- **Date:** 2026-02-16
|
||||
- **Project:** Lightweight Bracket
|
||||
- **Decision:** Prioritize structural performance over thermal management, cost, or weldability.
|
||||
- **Outcome:** Selected **7075-T6 Aluminum** for the next design and optimization phase.
|
||||
- **Rationale:** Directive from CEO.
|
||||
- **Status:** Decided.
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,215 @@
|
||||
---
|
||||
tags:
|
||||
- Project/Atomizer
|
||||
- Agentic
|
||||
- Orchestration
|
||||
- Plan
|
||||
date: 2026-02-17
|
||||
status: planning
|
||||
owner: Antoine + Mario
|
||||
---
|
||||
|
||||
# 13 — Taskboard / Kanban / Dynamic Project Orchestration
|
||||
|
||||
## Problem Statement
|
||||
|
||||
The current orchestration is broken. Agents exist, delegation works mechanically (hooks API), but there's no **structured workflow** tying it together. `PROJECT_STATUS.md` is a flat file that Manager edits manually — it's not a real kanban. There's no enforced flow from task creation → assignment → execution → deliverable → summary. Deliverables land wherever instead of in the right Discord channels. Antoine has no visibility into what Manager is planning or how agents are being pulled.
|
||||
|
||||
**What we need:** A file-based taskboard that serves as the orchestration backbone — agents read it, update it, and Manager uses it to drive all collaboration. The frontend dashboard is secondary; the data and workflow come first.
|
||||
|
||||
---
|
||||
|
||||
## Architecture
|
||||
|
||||
### 1. Taskboard: `shared/taskboard.json`
|
||||
|
||||
Single source of truth for all active work. JSON array of task objects.
|
||||
|
||||
```json
|
||||
{
|
||||
"version": 1,
|
||||
"lastUpdated": "2026-02-17T01:00:00Z",
|
||||
"updatedBy": "manager",
|
||||
"tasks": [
|
||||
{
|
||||
"id": "TASK-001",
|
||||
"title": "Research Clearceram-Z HS thermal properties",
|
||||
"description": "Full thermal property comparison: CTE, conductivity, diffusivity for CCZ HS vs Zerodur Class 0",
|
||||
"status": "in-progress",
|
||||
"priority": "high",
|
||||
"assignee": "webster",
|
||||
"requestedBy": "manager",
|
||||
"project": "gigabit-m2",
|
||||
"deliverable": {
|
||||
"type": "analysis",
|
||||
"targetChannel": "technical",
|
||||
"format": "Discord post with data table"
|
||||
},
|
||||
"created": "2026-02-17T01:00:00Z",
|
||||
"updated": "2026-02-17T01:15:00Z",
|
||||
"dueBy": null,
|
||||
"notes": [],
|
||||
"completedAt": null
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
#### Task Schema
|
||||
|
||||
| Field | Type | Description |
|
||||
|-------|------|-------------|
|
||||
| `id` | string | Auto-incremented `TASK-NNN` |
|
||||
| `title` | string | Short description |
|
||||
| `description` | string | Full context for the assignee |
|
||||
| `status` | enum | `backlog` → `todo` → `in-progress` → `review` → `done` → `cancelled` |
|
||||
| `priority` | enum | `critical`, `high`, `medium`, `low` |
|
||||
| `assignee` | string | Agent name (or `antoine` for CEO tasks) |
|
||||
| `requestedBy` | string | Who created it |
|
||||
| `project` | string | Project tag for grouping |
|
||||
| `deliverable.type` | enum | `document`, `code`, `analysis`, `recommendation`, `review`, `data` |
|
||||
| `deliverable.targetChannel` | string | Discord channel where result gets posted |
|
||||
| `deliverable.format` | string | Expected output format |
|
||||
| `created` | ISO datetime | When task was created |
|
||||
| `updated` | ISO datetime | Last status change |
|
||||
| `dueBy` | ISO datetime or null | Deadline if any |
|
||||
| `notes` | array of strings | Status updates, blockers, progress notes |
|
||||
| `completedAt` | ISO datetime or null | When marked done |
|
||||
|
||||
#### Status Flow
|
||||
|
||||
```
|
||||
backlog → todo → in-progress → review → done
|
||||
↓
|
||||
cancelled
|
||||
```
|
||||
|
||||
- **backlog**: Identified but not yet prioritized
|
||||
- **todo**: Ready to be picked up
|
||||
- **in-progress**: Agent is actively working
|
||||
- **review**: Deliverable produced, awaiting Manager/Antoine review
|
||||
- **done**: Accepted and posted to Discord
|
||||
- **cancelled**: Dropped (with reason in notes)
|
||||
|
||||
### 2. Orchestration Plan: `shared/orchestration-log.md`
|
||||
|
||||
Append-only log where Manager posts orchestration plans **before** kicking off work. This gives Antoine visibility into what's happening and why.
|
||||
|
||||
Format:
|
||||
```markdown
|
||||
## [2026-02-17 01:00] Orchestration: Material Comparison for M2/M3
|
||||
|
||||
**Objective:** Compare Zerodur Class 0 vs Clearceram-Z HS for M2/M3 mirrors
|
||||
**Tasks created:** TASK-001, TASK-002, TASK-003
|
||||
**Agent assignments:**
|
||||
- Webster → material property research (TASK-001)
|
||||
- Tech-Lead → structural impact analysis (TASK-002)
|
||||
- Secretary → compile final comparison report (TASK-003, after 001+002)
|
||||
|
||||
**Dependencies:** TASK-003 waits on TASK-001 + TASK-002
|
||||
**Expected output:** Comparison report in #reports, raw data in #technical
|
||||
**ETA:** ~2 hours
|
||||
|
||||
---
|
||||
```
|
||||
|
||||
### 3. Agent Protocols
|
||||
|
||||
#### Manager (orchestrator)
|
||||
- **ONLY writer** of `taskboard.json` (creates, assigns, updates status)
|
||||
- Posts orchestration plans to `orchestration-log.md` before delegating
|
||||
- Posts orchestration summaries to Discord `#feed`
|
||||
- Reviews deliverables before marking tasks `done`
|
||||
- Reads `project_log.md` for agent status updates
|
||||
|
||||
#### Assigned Agents (executor)
|
||||
- Read their tasks from `taskboard.json` (filter by `assignee`)
|
||||
- Append progress to `shared/project_log.md` (append-only, never edit taskboard directly)
|
||||
- Post deliverables to the `deliverable.targetChannel` specified in the task
|
||||
- Log format: `[YYYY-MM-DD HH:MM] [agent] TASK-NNN: <update>`
|
||||
|
||||
#### Secretary (condensation)
|
||||
- After orchestration chains complete, Secretary **must** be the final step
|
||||
- Reads completed tasks + deliverables from the chain
|
||||
- Produces a condensation/summary
|
||||
- Posts distillate to Discord `#reports`
|
||||
- Updates `shared/orchestration-log.md` with completion status
|
||||
|
||||
### 4. Deliverable Routing
|
||||
|
||||
Every deliverable has a home. Manager specifies the target channel when creating the task.
|
||||
|
||||
| Deliverable Type | Default Channel | Description |
|
||||
|-----------------|-----------------|-------------|
|
||||
| `document` | `#reports` | Reports, summaries, formal docs |
|
||||
| `code` | `#technical` | Scripts, configs, implementations |
|
||||
| `analysis` | `#technical` | FEA results, data analysis, comparisons |
|
||||
| `recommendation` | `#reports` | Decision support, trade studies |
|
||||
| `review` | `#reports` | Audits, quality checks |
|
||||
| `data` | `#knowledge-base` | Raw data, material properties, reference info |
|
||||
|
||||
Manager can override the default channel per task.
|
||||
|
||||
### 5. Discord Channel Usage (refined)
|
||||
|
||||
| Channel | Purpose | Who Posts |
|
||||
|---------|---------|-----------|
|
||||
| `#reports` | Final summaries, orchestration distillates | Secretary (primary), Manager |
|
||||
| `#feed` | Orchestration plans, sprint status, kanban snapshots | Manager |
|
||||
| `#technical` | Technical work, analysis results, code | Tech-Lead, Optimizer, NX-Expert, Webster |
|
||||
| `#knowledge-base` | Permanent reference data, lessons learned | Any agent |
|
||||
| `#announcements` | Major decisions, milestones | Manager, Antoine |
|
||||
| `#agent-logs` | Verbose process logs (not for Antoine) | Any agent |
|
||||
|
||||
---
|
||||
|
||||
## Implementation Plan
|
||||
|
||||
### Phase 1: Foundation (immediate)
|
||||
1. Create `shared/taskboard.json` with empty task list
|
||||
2. Create `shared/orchestration-log.md`
|
||||
3. Create `shared/skills/taskboard/` — shell scripts for agents to:
|
||||
- `read-tasks.sh <agent>` — list my assigned tasks
|
||||
- `update-status.sh <task-id> <status> [note]` — log progress (appends to project_log.md)
|
||||
- `create-task.sh` — Manager only, adds task to taskboard
|
||||
- `complete-task.sh <task-id>` — Manager only, marks done
|
||||
4. Update Manager's `AGENTS.md` with orchestration protocol
|
||||
5. Update Secretary's `AGENTS.md` with condensation protocol
|
||||
6. Update all agents' `AGENTS.md` with task-reading protocol
|
||||
|
||||
### Phase 2: Workflow enforcement
|
||||
1. Manager HEARTBEAT checks taskboard for stale tasks (in-progress > 4h with no updates)
|
||||
2. Secretary HEARTBEAT checks for completed orchestration chains needing condensation
|
||||
3. Kanban snapshot posted to `#feed` by Manager (daily or on-demand)
|
||||
|
||||
### Phase 3: Dashboard integration (later, CEO view)
|
||||
1. Dashboard backend reads `taskboard.json` directly
|
||||
2. Frontend renders kanban board
|
||||
3. Antoine can view/filter tasks, see agent activity
|
||||
4. Eventually: approve/reject deliverables from dashboard
|
||||
|
||||
---
|
||||
|
||||
## Key Principles
|
||||
|
||||
1. **File-based, not API-based** — `taskboard.json` is the single source of truth. No database needed. Every agent can read it. Only Manager writes it.
|
||||
2. **Append-only logs** — Agents never edit shared state directly. They append to `project_log.md`. Manager synthesizes.
|
||||
3. **Orchestration plans are visible** — Manager always posts the plan before executing. Antoine sees what's coming.
|
||||
4. **Secretary is always the last step** — Every orchestration chain ends with Secretary producing a readable summary for Discord.
|
||||
5. **Deliverables go to the right place** — Target channel is part of the task definition, not an afterthought.
|
||||
6. **Progressive automation** — Start with scripts + protocols. Dashboard frontend comes later when the workflow is proven.
|
||||
|
||||
---
|
||||
|
||||
## Dependencies
|
||||
|
||||
- Delegate skill already works (hooks API)
|
||||
- Discord channels exist
|
||||
- Agent workspaces exist
|
||||
- `project_log.md` append pattern already in use
|
||||
|
||||
## Risks
|
||||
|
||||
- Agents may not reliably read taskboard on every session (mitigate: add to HEARTBEAT.md)
|
||||
- JSON file corruption if multiple writers (mitigate: Manager is sole writer)
|
||||
- Task staleness if agents don't report progress (mitigate: Manager heartbeat checks)
|
||||
Reference in New Issue
Block a user