Skip to content

Notion — HoEN Product Board

Reference for the apply-work-tracking Notion adapter. Draft — refine as automation lands.

Board

Item Value
Name HoEN Product Board
URL https://app.notion.com/p/wue/263e0376fa44807dbd4bc9c61619c52b
Data source ID 263e0376-fa44-80e9-8a68-000b4b277092
Default active view Active board (263e0376-fa44-80be-817f-000c2727d807)

Component type vs Product

Field Meaning Examples
Component type Which git repo / codebase owns the work WUE Website, ImpactStack, HoEN Library, HoEN Explorer, engineeringneeds.io, HoEN API
Product Product line or module (especially ImpactStack) Workshop, Coordinated Assessment, Self Service SaaS; legacy tags may include repo names

One card per tracked plan/ADR. Filter views by Component type when working in a single repo.

Schema (plan sync)

Properties added for git ↔ Notion sync (names as shown in Notion UI):

Property Type Purpose
Task name title Human title (Epic name, ADR title)
Status status Not started · In progress · In review · Done
Work type select Epic · Story · Task · Bug · ADR
Component type select Repo / component (see table above)
Product multi_select ImpactStack modules or product tags
Priority select Team priority
Assignee person Optional owner
Description text Short summary
Plan ID rich_text Stable slug — lookup key (articles-migration-from-wix, adr-001-…)
Plan doc url Full GitHub blob URL to plan/ADR markdown
Effort JSON rich_text Optional snapshot of sidecar (automation)
Pct complete number From summarize-effort.mjs
Effort done / Effort total number Fibonacci rollups
Steps done / Steps total number Step counts
Phases done / Phases total number Phase counts
Effort remaining number Remaining Fibonacci points
Progress headline rich_text 👀 one-liner from script or ADR status
Current plan phase rich_text Active phase label
Ship note rich_text Cutover / ship notes when done
Plan synced at date Last agent/script sync
Keep on board checkbox Keep Done cards visible
Last edited last_edited_time For 60-day Done filter

Field mapping from summarize-effort.mjs

Run from hoen-library path (or equivalent in global skills install):

node library/skills/plan-effort-estimate/scripts/summarize-effort.mjs \
  --input path/to/plan.effort.json --pretty

Map JSON keys to Notion properties (exact key names depend on script version — prefer --pretty output as the contract):

Script / plan source Notion property
pctComplete or equivalent Pct complete
Effort done / total Effort done, Effort total
Step counts Steps done, Steps total
Phase counts Phases done, Phases total
Remaining effort Effort remaining
Markdown headline / phase line Progress headline, Current plan phase
All steps Done Status → Done
Any step in progress Status → In progress
Plan file path on GitHub Plan doc
Basename without extension Plan ID

Never hand-sum Fibonacci points for the board.

ADR cards (no effort JSON)

Example: ADR-001 card

  • Work type: ADR
  • Component type: WUE Website (or repo’s value)
  • Plan ID: adr-001-article-rendering-and-ssr
  • Plan doc: GitHub URL to docs/planning/adr-001-article-rendering-and-ssr.md
  • Progress headline: Derived from ADR Status table
  • Keep on board: Often checked — ADRs stay referenceable while related epics run

Page body can mirror the ADR Status table; Plan doc on the card remains the source link.

Views

View Intent
Active board Kanban by Status; primary working view
Epics & Stories Filter Work type ∈
ADRs Filter Work type = ADR (create when needed)
All Tasks Includes Task/Bug
Recent done Table of Done in last ~60 days (optional)

Active board filter (60-day Done)

Desired logic (may require manual Notion UI — MCP struggled with compound OR):

(Status ≠ Done)
OR (Status = Done AND Last edited within past 60 days)
OR (Keep on board = true)

Cards shown early in view: Task name, Work type, Component type, Product, Priority, Progress headline, Current plan phase, Assignee.

MCP notes

  • Schema changes: notion-update-data-source with collection/data source ID above.
  • Create card: notion-create-pages with parent.data_source_id.
  • View filters with OR + relative dates may need human confirmation in Notion UI.
  • After creating ADR work type, extend select: ALTER COLUMN "Work type" SET SELECT(..., 'ADR':yellow).

Future script

sync-plan-to-notion.mjs (not yet in library) should:

  1. Accept --plan path/to/plan.md and optional --effort path/to/plan.effort.json
  2. Run validate + summarize internally
  3. Upsert by Plan ID + Component type
  4. Set Plan synced at

Until then, agents follow Part B in SKILL.md manually or via Notion MCP.