PugBase/Docs

Reference

MCP tools reference

get_product_contextLearn PugBase's concepts (sessions, notes, plans, sources) - call once per session.
list_workspacesList the workspaces your key can access.
get_plan_specRead the full plan, aggregated - tasks grouped per feature, each note with its assignee and live done="X/Y" progress (a `- [x]` is already done, by you or another agent). Call this first when building from a plan.
list_plan_notesList the plan's notes - to target push_result.
list_notesList every note in the workspace with its session/folder.
search_notesFull-text search notes by keyword; returns best matches with previews.
get_note_specRead a single note's content (docs and diagrams).
list_sourcesList a note's ingested sources (meeting transcripts, PDFs, docs).
get_source_transcriptRead a source's full transcript - the ground truth behind a requirement.
get_note_commentsRead the human review comments on a note.
create_noteCreate a new note (reports, specs, docs); optional folder organises a doc set.
save_memorySave a durable fact (decision, convention, gotcha, feedback) into the team's shared Memory - future sessions start knowing it.
export_memoriesCompile the whole Team Memory into one markdown doc - e.g. to write a CLAUDE.md snapshot into a repo.
create_diagram_noteCreate a diagram note (flowchart from Mermaid, ER from DBML).
push_resultAPPEND a result into an existing note (reports, findings).
update_noteREPLACE a doc note's content when it is now wrong; the old body is version-backed-up first.
update_diagramREPLACE a diagram note's content; the old canvas is snapshotted to history first.
mark_task_doneTick a checklist task so the human sees progress. First tick on an unassigned note claims it for your member; ticking another member's note returns a warning.
reopen_taskReopen a task that was marked done but is NOT actually done (QA found a bug / missing case), WITH a reason. The reason shows on the Status board and in get_plan_spec so the owning agent fixes exactly that.
upload_imageUpload a screenshot; returns an inline image.
upload_fileUpload a self-contained .html; returns an interactive embed.

Teach Claude once with CLAUDE.md

Save this in your project root and Claude Code picks up the whole workflow automatically every session - no need to re-explain.

# PugBase + Claude Code

This project is connected to a PugBase workspace over MCP (see .mcp.json).
Read the plan from PugBase and report your work back into PugBase notes.

## MCP tools (server: pugbase)
- get_product_context    - PugBase concepts primer (call once per session)
- get_plan_spec          - read the full plan (call this first when building)
- list_plan_notes        - list the plan's notes (to target push_result)
- list_notes / search_notes - find any note (search by keyword, not by scanning)
- get_note_spec          - read one note's content (docs and diagrams)
- list_sources / get_source_transcript - a note's ingested files (e.g. the
  meeting transcript behind a requirement - the ground truth when specs clash)
- get_note_comments      - human review feedback on a note (overrides the body)
- create_note            - create a new note (reports, specs, docs)
- save_memory            - save a durable fact into the team's shared Memory
- export_memories        - compile the whole Team Memory into one markdown doc
- create_diagram_note    - create a diagram note (Mermaid flowchart / DBML ER)
- push_result            - APPEND a result to an existing note
- update_note            - REPLACE a doc note that is now wrong (old body is
  version-backed-up; never create a "v2 copy" of a doc just to update it)
- update_diagram         - REPLACE a diagram note (old canvas snapshotted)
- mark_task_done         - tick a checklist task (mirror of real progress)
- reopen_task            - reopen a "done" task that failed QA, WITH a reason
  (the reason reaches the owning agent via get_plan_spec - the QA feedback loop)
- upload_image           - upload a screenshot, returns ![](url)
- upload_file            - upload a self-contained .html, returns a ```embed block

## Team memory
The workspace keeps a shared memory: each memory is a note in the "Memory"
session, indexed in "MEMORY.md" (announced on connect when memories exist).
Read the index before your first task; open a memory only when relevant.
When something durable happens - a human corrects your work, a decision is
settled, a gotcha costs real time - write it back with save_memory so every
future session (anyone's) starts knowing it. Reuse the slug to update.

## Standing instructions as a note
You can keep this project's real instructions IN PugBase instead of in this
file: create a note titled "CLAUDE.md" (or "AGENTS.md" / "skill.md") in the
workspace. The MCP server announces it on connect - read it with
get_note_spec BEFORE the first task of every session and follow it exactly
as you would a local CLAUDE.md. Edit the note in PugBase to change the
rules; no commit needed.

## Workflow
1. Read the plan with get_plan_spec.
2. Build it. Follow the Constraints exactly; if a point is ambiguous or
   offers a choice, ask before guessing - and check get_note_comments /
   the source transcripts before guessing at intent.
3. Report back to PugBase as you finish each part (push_result), tick the
   checklist (mark_task_done), and fix any doc the change made stale
   (update_note / update_diagram).

## Team plans (feature split + claim)
- A plan's Tasks are grouped per FEATURE, and a task note can carry an
  assignee (the member who owns it). Work ONLY the feature your user asked
  for; solo users can say "build all features" and you work through them in
  build order.
- NEVER tick tasks on a note assigned to another member - their own agent
  works it in parallel. Your first tick on an UNASSIGNED note claims it for
  your user; if a tick response carries a WARNING that the note belongs to
  someone else, surface it and stop unless your user explicitly asked.

## Writing good reports
- Default to NATIVE markdown: headings, pass/fail tables, findings, and
  screenshots embedded with upload_image. It is readable and the team can
  comment on each block.
- Use a ```embed block (upload_file of a SELF-CONTAINED .html, all assets
  inlined as data URIs) ONLY for genuinely interactive extras: a full test
  report, a trace, or a chart. Comments do not work inside an embed, so keep
  discussion-worthy content native.

## Test reports (Playwright etc.)
- Run with `--reporter=json`, parse pass/fail.
- create_note "QA Report" with a pass/fail table + findings + failure
  screenshots (upload_image). Add a ```embed only if an interactive report
  genuinely adds value.
- When a test FAILS on a task another agent marked done, reopen_task that
  task with the failure as the reason. The owning agent then sees the reason
  in get_plan_spec and fixes exactly that - that is the QA feedback loop.
PugBase x Claude Code - plan it in PugBase, build it with Claude, review it together.