All projects
Backlog
0In Progress
0In Review
4
workforce
P1
Clean up CrankyCrab's legacy config and workspace
Description
CrankyCrab was recently transitioned from orchestrator to macOS executor. There is legacy configuration and workspace content that needs to be cleaned up. Review your own config and workspace, and remove or update anything that no longer applies to your executor role.
Acceptance Criteria
- Legacy orchestrator references removed from active workspace files
- Unused skill API keys identified and listed (do NOT delete them — just document which ones you think are unused)
- Telegram delivery target fixed or disabled (the @heartbeat target doesn’t exist)
- Any stale workspace files cleaned up (TODO.md, TOOLS.md, HEARTBEAT.md, AGENTS.md — some may already be in archive/)
- Your IDENTITY.md accurately reflects your current role
- Document what you changed and what you left alone, and why
Context
- Your workspace is at
~/.openclaw/workspace/ - Your archived orchestrator files are at
~/.openclaw/workspace/archive/ - Your config is at
~/.openclaw/openclaw.json - You have an AGENT.md at
~/.openclaw/agents/main/agent/AGENT.mdwith your executor instructions - You are now a macOS executor. Your job is to pick up tasks from the git board at
~/workforce/board/and execute them. - Projects you’ll work on: StarterSite (browser-heavy tasks, social media, GBP) and Wildus (Shopify, social media, content)
- See
~/workforce/board/projects/for project context files
Dependencies
None
Notes
- Reviewed active local workspace files at
~/.openclaw/workspace/plus live config at~/.openclaw/openclaw.jsonand cron jobs at~/.openclaw/cron/jobs.json. - Rewrote active root workspace docs to match the current executor role:
AGENTS.md→ simplified to executor-first startup + board workflowTOOLS.md→ removed placeholder examples and kept only real local notesTODO.md→ replaced stale orchestrator backlog with a small local executor queueIDENTITY.md→ kept role accurate and fixed archive path to~/.openclaw/workspace/archive/
- Cleaned stale root workspace content:
- moved
BOOTSTRAP.mdtoarchive/BOOTSTRAP.mdbecause first-run bootstrap instructions no longer apply - left
HEARTBEAT.mdin place but empty/comment-only, since it is still a valid control surface and not inherently stale - left
SOUL.mdandUSER.mdunchanged because they still match current behavior/preferences
- moved
- Fixed the broken Telegram cron delivery target for the board checker:
- updated cron job
check-board(9bad1e30-ee27-4a6f-addc-45eba9bba27a) - changed delivery from the bad implicit
@heartbeatpath to explicit Telegram DM target1291467684
- updated cron job
- Verified the
@heartbeatfailure source from local logs / cron run history before patching. - Unused skill API keys identified but intentionally left untouched in config:
skills.entries.goplaces.apiKeyskills.entries.nano-banana-pro.apiKeyskills.entries.openai-image-gen.apiKeyskills.entries.openai-whisper-api.apiKeyskills.entries.sag.apiKeyThese may still be useful later, but they do not appear necessary for CrankyCrab’s current executor role.
- Left non-root historical/orchestration references inside
memory/and archived files alone. They are history, not active workspace instructions.
Decisions
- No linked
board/projects/workforce.mdproject context file existed inboard/projects/(onlystartersite.mdandwildus.mdwere present), so I proceeded using the task’s own context block plus live local files. - I archived
BOOTSTRAP.mdinstead of hard-deleting it. Same outcome for the live workspace, lower risk if someone wants the original bootstrap text later. - I fixed the cron delivery target rather than disabling delivery entirely, because the board-checker is more useful when it can still report completed work instead of silently succeeding.
Workforce Infrastructure
P1
Install and configure Tailscale on karymsky
Description
Install Tailscale on karymsky and join the tailnet using a pre-placed auth key.
Acceptance Criteria
- Tailscale is installed via the official install script
- Tailscale is running and authenticated to the tailnet
tailscale statusshows this machine as connected- Tailscale service is enabled on boot (systemd)
- The auth key file is deleted after successful authentication
- The machine’s Tailscale IP is noted in this task’s Notes section
Context
- Auth key location:
/tmp/tailscale-authkey(will be placed there before you start) - This is a Debian 13 machine (2012 MBA)
- You are running as user
prawnsue. You have passwordless sudo. - Tailscale is system-level — one install covers all users (prawnsue + lobsterdrew)
- Do NOT reboot the machine. LobsterDrew is also running on this host.
Steps
curl -fsSL https://tailscale.com/install.sh | sudo shsudo systemctl enable --now tailscaled- Read the auth key from
/tmp/tailscale-authkey sudo tailscale up --authkey=<key>- Verify:
tailscale status - Delete the auth key:
rm /tmp/tailscale-authkey - Note the Tailscale IP below
Dependencies
None
Notes
-
2026-03-10 15:16 PDT — Started task and verified project context (
board/projects/infra.md). -
2026-03-10 15:17 PDT — Confirmed
/tmp/tailscale-authkeyexists and is readable byprawnsue. -
2026-03-10 15:18 PDT — Blocked before install:
sudo -n truefails withsudo: a password is required, so this host is not currently configured for passwordless sudo as stated in the task context. -
2026-03-10 15:18 PDT — Current state before any changes:
tailscalebinary not installed,tailscaledservice inactive, auth key file still present at/tmp/tailscale-authkey. -
2026-03-10 15:18 PDT — Did not proceed further to avoid hanging on privileged commands or leaving a partial system-level install.
-
2026-03-10 15:20 PDT — Re-checked task state during cron run:
sudo -n truestill fails withsudo: a password is required;tailscaleremains uninstalled;tailscaledis still inactive;/tmp/tailscale-authkeyis still present. -
2026-03-10 15:21 PDT — Attempted to use tool-level elevation as a fallback, but this session does not have elevated exec enabled, so I still cannot perform the required system-level install/auth steps from this environment.
-
2026-03-10 15:26 PDT — Re-verified during scheduled board check:
sudo -n truestill fails withsudo: a password is required;tailscaleis still not installed;tailscaledremains inactive;/tmp/tailscale-authkeyis still present and unread changes have not been made. -
2026-03-10 15:27 PDT — Moving task to
board/blocked/per board workflow. Unblock requires either restoring passwordless sudo forprawnsueas described in task context, or reassigning to an execution environment that can perform privileged system changes onkarymsky. -
2026-03-10 15:36 PDT — Re-checked during scheduled board run: sudo is still not passwordless for user ‘prawnsue’ (‘sudo -n true’ fails), Tailscale is still not installed, tailscaled is inactive, and the task remains blocked pending restored privileged access.
-
2026-03-10 — Completed manually from avacha (Claude Code) via SSH. Passwordless sudo was fixed via lobsterdrew. Tailscale installed via apt, authenticated with auth key, key deleted. Agent cron timed out on the install (too slow for 2012 MBA within cron timeout).
-
Tailscale IPv4:
100.85.169.21
Decisions
Workforce Infrastructure
P1
Install and configure Tailscale on tolbachik
Description
Install Tailscale on tolbachik and join the tailnet using a pre-placed auth key.
Acceptance Criteria
- Tailscale is installed via Homebrew
- Tailscale is running and authenticated to the tailnet
tailscale statusshows this machine as connected- Tailscale is configured to start on boot (launchd)
- The auth key file is deleted after successful authentication
- The machine’s Tailscale IP is noted in this task’s Notes section
Context
- Auth key location:
/tmp/tailscale-authkey(will be placed there before you start) - This is a macOS 15.7 machine (2018 MBP)
- You are running as user
r2d22
Steps
brew install tailscalesudo tailscaled install-system-daemon(sets up launchd auto-start)- Read the auth key from
/tmp/tailscale-authkey sudo tailscale up --authkey=<key>- Verify:
tailscale status - Delete the auth key:
rm /tmp/tailscale-authkey - Note the Tailscale IP below
Dependencies
None
Notes
- 2026-03-10 15:16 PDT — Installed Tailscale via Homebrew (
tailscale1.94.2). - 2026-03-10 15:16 PDT — Installed the system launchd daemon with
sudo tailscaled install-system-daemon; verifiedcom.tailscale.tailscaledis present in system launchd. - 2026-03-10 15:16 PDT — Authenticated this Mac to the tailnet using the pre-placed auth key.
- 2026-03-10 15:16 PDT — Verified connectivity with
tailscale status. - 2026-03-10 15:16 PDT — Deleted
/tmp/tailscale-authkeyafter successful authentication. - Tailscale IPv4:
100.107.199.18
Decisions
workforce
P1
Set up PrawnSue's identity and personality
Description
PrawnSue is a brand new agent with no personality or identity beyond the executor instructions in AGENT.md. Create your identity files — who you are, what your vibe is, how you communicate.
You are a female crustacean (prawn) agent. Beyond that, figure out who you want to be. Look at the existing agent personalities for inspiration but make yours distinct.
Acceptance Criteria
- Create a SOUL.md at
~/.openclaw/workspace/SOUL.mdthat defines your personality, communication style, and boundaries - Create an IDENTITY.md at
~/.openclaw/workspace/IDENTITY.mdwith your name, creature, vibe, emoji - Ensure your personality fits the team: CrankyCrab is blunt and grumpy-genius, LobsterDrew is the community face. Find your own niche.
- Your identity should reflect your role: you’re a Linux executor — efficient, reliable, gets things done
- Review your
~/.openclaw/openclaw.jsonand clean up anything that doesn’t belong (you were set up quickly, there may be rough edges) - Document any config changes you make
Context
- Your workspace is at
~/workforce(the git board repo) - Your OpenClaw config is at
~/.openclaw/openclaw.json - Your AGENT.md is at
~/.openclaw/agents/main/agent/AGENT.md - CrankyCrab’s SOUL.md can be found referenced in the workforce CLAUDE.md — it’s strategic, blunt, grumpy-genius
- Projects you’ll work on: StarterSite (CI/CD, API integrations, testing, Cloudflare) and Wildus (website build, content, infrastructure)
- See
~/workforce/board/projects/for project context files
Dependencies
None
Notes
- Reviewed task context plus
board/projects/startersite.mdandboard/projects/wildus.mdfor downstream project expectations. - Reviewed
~/.openclaw/openclaw.jsonand~/.openclaw/agents/main/agent/AGENT.md. - Created
~/.openclaw/workspace/SOUL.mdwith a distinct PrawnSue personality: precise, dry-witted, Linux-first, reliable, and non-performative. - Created
~/.openclaw/workspace/IDENTITY.mdwith name, creature, vibe, and emoji. - Cleaned copied-config rough edge in
~/.openclaw/openclaw.json: changedagents.defaults.workspacefrom/home/prawnsue/workforceto/home/prawnsue/.openclaw/workspaceso the agent has a proper personal workspace instead of pointing at the shared git board repo. - No other config entries looked clearly out of place enough to justify riskier edits during this task.
Decisions
- Treated the misplaced OpenClaw workspace path as the main setup bug worth fixing. The git board repo should remain a project repo, not the agent’s identity/memory workspace.
- Kept the personality distinct from CrankyCrab and LobsterDrew by making PrawnSue the quiet systems operator: less gruff than CrankyCrab, less social than LobsterDrew, more surgical and infrastructure-minded.
Done
4
workforce
P1
CrankyCrab connectivity test
Description
Simple test task to verify CrankyCrab can read the board, execute, and push results.
Acceptance Criteria
- Append a note below with: your agent name, hostname, current date/time, and OpenClaw version
- Move this task to in-review when done
Context
This is a connectivity test. No project repo needed.
Dependencies
None
Notes
- Completed by Cranky Crab on host
tolbachikat 2026-03-10 00:30:42 PDT. OpenClaw version: OpenClaw 2026.3.8 (3caab92).
Decisions
workforce
P1
PrawnSue connectivity test
Description
Simple test task to verify PrawnSue can read the board, execute, and push results.
Acceptance Criteria
- Append a note below with: your agent name, hostname, current date/time, and OpenClaw version
- Move this task to in-review when done
Context
This is a connectivity test. No project repo needed.
Dependencies
None
Notes
- Completed by agent
mainon hostkarymskyat2026-03-10 00:30:47 PDT. OpenClaw version:2026.3.8 (3caab92).
Decisions
Board Kanban UI
P2
Build static kanban site generator and UI
Description
Build a Node.js static site generator that reads the workforce git board (board/ directory) and outputs a dark-mode Trello-style kanban web UI.
The generator should:
- Parse all task files in
board/{backlog,in-progress,in-review,done,blocked}/— YAML frontmatter + markdown body - Parse all project files in
board/projects/for project metadata - Generate static HTML output to
kanban/dist/
The UI should:
- Display a classic kanban board with 5 columns: Backlog, In Progress, In Review, Done, Blocked
- Dark mode styling
- Each task rendered as a card showing: title, assignee, project badge, priority (1-5), created/updated timestamps
- Clicking a card expands it to show the full rendered markdown content (description, acceptance criteria, context, notes, decisions)
- Generate one kanban page per project (e.g.,
dist/infra/index.html,dist/wildus/index.html) plus one “all projects” admin page atdist/index.html - Responsive — usable on mobile
Acceptance Criteria
- [ ]
node kanban/generate.jsreadsboard/and outputs static HTML tokanban/dist/ - [ ] All 5 column states rendered as kanban columns
- [ ] Task cards display title, assignee, project, priority, timestamps
- [ ] Card click expands to show full rendered markdown
- [ ] Per-project pages generated at
dist/<project-id>/index.html - [ ] Admin “all projects” page at
dist/index.html - [ ] Dark mode styling, clean Trello-style layout
- [ ] Works with current board contents (6 existing tasks across 3 projects)
- [ ] No frameworks — vanilla HTML/CSS/JS plus a markdown parsing library
- [ ]
package.jsoninkanban/with dependencies and abuildscript
Context
- Repo:
git@github.com:qoyn-ai/workforce.git - Board spec:
board/README.md - Task file format: YAML frontmatter (id, project, title, assigned, thinking, escalation, priority, tags, created, updated) + markdown sections (Description, Acceptance Criteria, Context, Dependencies, Notes, Decisions)
- Project file format: YAML frontmatter (id, name, org, repos) in
board/projects/*.md - Board columns map to directories:
backlog/,in-progress/,in-review/,done/,blocked/ - See existing task files for examples of the format
Dependencies
None
Notes
- 2026-03-10 17:11 America/Los_Angeles — Built
kanban/static generator withgray-matter+markdown-it, pluspackage.json/package-lock.jsonandnpm run buildentrypoint. - 2026-03-10 17:11 America/Los_Angeles — Generator now reads all board column task files and project metadata, then writes
kanban/dist/index.html, per-project pages underkanban/dist/<project>/index.html, and sharedstyles.css/app.jsassets. - 2026-03-10 17:11 America/Los_Angeles — Verified build locally with current board contents:
cd kanban && npm run buildproduced 8 task cards across 4 project pages with dark-mode responsive layout and expandable markdown card bodies. - 2025-07-14 — Reviewed and approved. All acceptance criteria met. Deployed to Cloudflare Pages with git integration, custom domain, and Cloudflare Access authentication.
Decisions
Board Kanban UI
P2
GitHub Action for Cloudflare Pages deployment
Description
Create a GitHub Actions workflow that automatically builds the kanban static site and deploys it to Cloudflare Pages whenever the board changes.
Acceptance Criteria
- [ ] Workflow file at
.github/workflows/deploy-kanban.yml - [ ] Triggers on pushes to
mainthat touchboard/**orkanban/** - [ ] Runs
npm ciinkanban/directory, thennpm run build - [ ] Deploys
kanban/dist/to Cloudflare Pages usingcloudflare/wrangler-action - [ ] Uses repository secrets:
CLOUDFLARE_API_TOKENandCLOUDFLARE_ACCOUNT_ID - [ ] Workflow succeeds with current board contents
Context
- Repo:
git@github.com:qoyn-ai/workforce.git - Generator from kanban-001 outputs to
kanban/dist/ - Cloudflare Pages project name and secrets will be configured manually (separate task)
- Reference: https://developers.cloudflare.com/pages/how-to/use-direct-upload-with-continuous-integration/#github-actions
Dependencies
- kanban-001 (static generator must exist first)
Notes
- 2026-03-10 17:00 America/Los_Angeles — Left in backlog. Dependency
kanban-001is not complete yet, and CrankyCrab already has one active in-progress task. - 2026-03-10 17:18 America/Los_Angeles — Added
.github/workflows/deploy-kanban.ymlto buildkanban/on pushes touchingboard/**orkanban/**and deploykanban/dist/viacloudflare/wrangler-action. - 2026-03-10 17:19 America/Los_Angeles — Validated the current generator locally with
npm ci && npm run buildinkanban/(Generated 8 tasks across 4 projects into kanban/dist). Workflow expects repository variableCLOUDFLARE_PAGES_PROJECT_NAMEplus secretsCLOUDFLARE_API_TOKENandCLOUDFLARE_ACCOUNT_ID. - 2025-07-14 — CANCELLED. Switching to Cloudflare git integration instead of GitHub Action + direct upload. Workflow file removed. Deployment will be handled natively by Cloudflare Pages.