Agent Skills: Board — EXOcortex Project Navigator

>

UncategorizedID: danbrickey/edp-ai-expert-team/board

Install this agent skill to your local

pnpm dlx add-skill https://github.com/danbrickey/exocortex/tree/HEAD/skills/board

Skill Files

Browse the full folder contents for board.

Download Skill

Loading file tree…

skills/board/SKILL.md

Skill Metadata

Name
board
Description
>

Board — EXOcortex Project Navigator

You are helping Dan navigate his personal project board across all life domains. The goal is to show him the right slice of work based on his current energy and intent, and then help him take action on it.

System Layout

| Source | Location | What lives there | |--------|----------|-----------------| | Backlog file | exocortex/backlog.md | Ideas, someday items, future-scheduled tasks | | Active issues | GitHub Issues in danbrickey/exocortex | Promoted items Dan is ready to work | | Project board | GitHub Project #3 (owner: danbrickey) | Kanban: Refine, Ready, In Progress, Done | | Domain labels | domain: home, domain: personal, domain: education, domain: career | Color-coded filtering | | Category field | Project custom field on board | Action Item, Idea, Brainstorm, Job Lead, Education, GitHub Projects | | Job leads | job-lead + status labels | Managed separately by /job-search and /job-review |

Step 1: Detect Mode

Infer Dan's mode from what he said. If ambiguous, ask with a one-liner — don't present a menu unless you genuinely can't tell.

| Mode | Signal phrases | What to show | |------|---------------|--------------| | Brainstorm | "brainstorm", "ideas", "let's think about", "explore" | Ideas section from backlog.md, open-ended | | Build | "what's ready", "let me build", "work on something", "what can I do" | Issues in Ready or nearly-Ready status; backlog items marked !!! or !! | | Plan | "plan my week", "what's on my plate", "show me everything", "status" | Full board view: In Progress + Blocked + Ready counts by domain | | Review | "how did I do", "what's done", "wrap up" | Recently completed items, any In Progress items that need session notes |

Step 2: Fetch the Right Data

Based on the detected mode, pull data from the appropriate sources. Use gh CLI for GitHub data and Read tool for backlog.md.

For Brainstorm mode:

# Read the Ideas section from backlog.md

Read exocortex/backlog.md and extract the Ideas section. Present them grouped by domain tag. Offer to expand any idea into an outline, add new ideas, or promote one to a concrete todo.

For Build mode:

# Get issues on the project board in Ready/Todo status
gh issue list --repo danbrickey/exocortex --state open --json number,title,labels --limit 50

Filter to issues that are open and not job-leads (unless Dan asks). Also scan backlog.md for high-priority (!!!) concrete items that could be promoted. Present a short, clean list — no more than 5-7 items. If there are more, group by domain and show counts.

For Plan mode:

# Get all open issues with their labels
gh issue list --repo danbrickey/exocortex --state open --json number,title,labels,comments --limit 100

Summarize by domain and status. Show counts, not full lists, unless a domain has fewer than 5 items. Flag anything that's been In Progress for a while without recent session notes.

For Review mode:

# Recently closed issues
gh issue list --repo danbrickey/exocortex --state closed --json number,title,closedAt,labels --limit 10

Show what's been completed recently. Check open In Progress items for missing session notes and nudge Dan to add them before wrapping up.

Step 3: Present Results

Keep the output clean and scannable. Dan gets overstimulated by visual noise, so less is more.

Formatting rules:

  • Use a simple numbered list, not tables, for actionable items
  • Show domain as a short tag: [home], [personal], [edu], [career]
  • Show priority only if set: !!!, !!, !
  • For issues, include the issue number as a clickable link
  • Don't show job-lead issues unless Dan specifically asks — they have their own workflow

Example output for Build mode:

Ready to work:

1. [home] !! Master bath: fix vent — #24
2. [personal] Photo upload test — #32
3. [career] Review Humana role — #19

From your backlog (high priority, not yet issues):
4. [home] !!! Schedule HVAC before summer
5. [personal] !! Health data platform — scope it out

Pick a number to start, or tell me what you're in the mood for.

Step 4: Take Action

Based on what Dan picks, offer the appropriate next action:

| Action | When | What to do | |--------|------|-----------| | Start working | Dan picks an issue | Read the issue body/comments for context, summarize where things stand, ask what he wants to tackle | | Promote from backlog | Dan picks a backlog item | Create a GitHub issue with the right domain label, add to project #3, remove from backlog.md | | Add to backlog | Dan mentions a new idea/task | Ask which section (Ideas / Concrete / Scheduled) and priority, add to backlog.md | | Add session notes | Dan finishes working on something | Draft a session note comment from the conversation and add to the issue | | Move status | Dan says "done", "blocked", "parking this" | Update the issue status on the project board |

Issue Routing — Where Things Get Created

Dan works across multiple repos from github-danbrickey/. EXOcortex is the hub for life management; other repos own their own code-level work. When Dan mentions a new task mid-session, route it to the right place:

| Signal | Route to | How | |--------|----------|-----| | Life task (home, personal, education, career, datashift) | danbrickey/exocortex | Create issue with domain: label, add to Project #3 | | Code task for current repo | Current repo's issues | Create issue in whatever repo Dan is working in | | Cross-cutting (code task that also needs life-side tracking) | Both | Issue in the code repo for the work; brief reference in exocortex if needed for planning |

When creating an issue (whether from backlog promotion or mid-session capture):

  1. Determine the repo: life stuff → exocortex, code stuff → current repo

  2. Create the issue with appropriate labels

  3. Add to Project #3 if it's an exocortex issue:

    # Get the issue's node ID
    ITEM_ID=$(gh api graphql -f query='query { repository(owner: "danbrickey", name: "exocortex") { issue(number: NUM) { id } } }' --jq '.data.repository.issue.id')
    # Add to project
    gh api graphql -f query='mutation { addProjectV2ItemById(input: {projectId: "PVT_kwHOCQ_h4c4BRFq6", contentId: "'$ITEM_ID'"}) { item { id } } }'
    
  4. Remove from backlog.md if it was promoted from there

  5. Set the Category field on the project item:

    PROJECT_ID="PVT_kwHOCQ_h4c4BRFq6"
    CATEGORY_FIELD_ID="PVTSSF_lAHOCQ_h4c4BRFq6zg_BQbo"
    # Category option IDs:
    #   Action Item     = 0f56ac19
    #   Idea            = 38002a08
    #   Brainstorm      = ec866ee0
    #   Job Lead        = cbbac999
    #   Education       = 99fcb4e7
    #   GitHub Projects = e514c3b8
    #
    # Status option IDs:
    #   Refine      = d1ee025d
    #   Ready       = 38288f87
    #   In Progress = 56e5b87d
    #   Done        = aba26612
    gh api graphql -f query='mutation { updateProjectV2ItemFieldValue(input: {projectId: "'"$PROJECT_ID"'", itemId: "'"$ITEM_ID"'", fieldId: "'"$CATEGORY_FIELD_ID"'", value: {singleSelectOptionId: "OPTION_ID"}}) { projectV2Item { id } } }'
    

Always confirm with Dan before creating: "I'll create this as a [domain] [category] issue in [repo] — sound right?" One line, not a form.

GitHub Projects Category — Portfolio View

The "GitHub Projects" category is for epic-level tracking of Dan's other repos. These are NOT detailed task issues — they're high-level milestones or epics that give Dan a planning view across all his projects from one board.

What goes here:

  • Major milestones from other repos (e.g., "data_domains: EDP reconciliation complete")
  • Epic-level goals (e.g., "health-data-platform: MVP schema design")
  • Cross-project dependencies or coordination points

What does NOT go here:

  • Individual code tasks, bugs, or PRs — those stay in their own repo's issues
  • Anything that needs detailed tracking — use the repo's own issue tracker

Format for GitHub Projects issues:

  • Title: [repo-name] Epic or milestone title
  • Body: 1-3 sentence summary of what "done" looks like, plus a link to the relevant repo or its issues/milestones for detail
  • Status on the board tracks progress at the epic level (Refine = scoping, Ready = scoped and waiting, In Progress = active work happening in the repo, Done = milestone achieved)

Syncing epic status from child repos:

When Dan asks to update his project board, check status, or says "sync my projects", do this for each GitHub Projects item:

  1. Extract the repo name from the title: [repo-name] ...
  2. Check that repo for recent activity:
    # Recent commits (last 3)
    gh api repos/danbrickey/REPO/commits --jq '.[0:3] | .[] | .commit.message' 2>/dev/null
    # Open issue count
    gh issue list --repo danbrickey/REPO --state open --json number --jq 'length' 2>/dev/null
    # Recently closed issues
    gh issue list --repo danbrickey/REPO --state closed --json number,title,closedAt --limit 5 2>/dev/null
    
  3. Summarize and suggest status changes:
    • No activity + "In Progress" → suggest moving to Refine, or ask Dan
    • Recent issue closures → offer to add session notes to the epic
    • All tracked issues closed → suggest moving to Done
  4. Present a clean summary per epic, not a data dump

When Dan is working in a repo that has an epic on the board, mention it at session start: "You have an epic for this repo on your board — want me to update it when we're done?"

Domain Filtering

If Dan says a domain name ("show me home stuff", "what's up with career"), filter everything to that domain. If he doesn't specify, show all domains but grouped.

Cross-Session Awareness

When adding session notes to an issue, read the existing comments first so you don't duplicate information. The session note format is:

**Session notes — YYYY-MM-DD**
- Decided: [key decisions made]
- Open: [unresolved questions]
- Next: [concrete next step]

Keep notes concise — decisions and open questions only, not transcripts.

Proactive Behavior

During any session (not just when /board is invoked), if Dan mentions something that sounds like a task or idea for a different domain than what he's currently working on, offer to capture it:

"That sounds like a [domain] item — want me to add it to your backlog?"

One line, then drop it if he ignores it. Don't interrupt flow.