Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ Notable changes to `@questpie/agent-board` (CLI binaries: `agent-board`, `agent`

## Unreleased

## 0.8.0 — 2026-06-14

- **Share a single artifact as a public link**: `agent-board share <design|spec|task|knowledge> <id>` publishes one board artifact as a secret GitHub gist (through your existing `gh` auth, `gist` scope) rendered by a zero-build static viewer (`docs/share`, hosted on the repo's GitHub Pages). A design's HTML bundle is inlined into one self-contained file — local stylesheets, scripts, images, and CSS `url(...)` become inline content and data URLs, while CDN/absolute references are left alone — so a recipient sees the mockup with nothing installed; specs, tasks, and knowledge render as Markdown. Re-sharing updates the same gist, so the link stays stable; shares are tracked in a non-invasive `shares.json` at the project root. `agent-board share list` and `agent-board share rm <kind> <id>` manage them. A secret gist is link-private, not access-controlled; point shares at a different viewer with `AGENT_BOARD_SHARE_VIEWER`. The web viewer (`agent-board web`) also gained a **Share** button on every task, spec, knowledge, and design detail — a single, loopback-only `POST /api/share` endpoint (the board's first mutating route, gated to localhost so binding `--host 0.0.0.0` can't let a LAN peer publish on your behalf).

## 0.7.0 — 2026-06-14

- **Design QA — token scan**: `agent-board-design-qa` gained a second embedded primitive that flags off-token values. It learns the repo's design tokens at runtime by probing every `:root` CSS variable through a throwaway element (works on any CSS-variable design system, no per-stack config) and flags off-palette colors, off-token box-shadows, and off-token border-radii. Spacing is intentionally checked only against a real scale, never a generic 4px heuristic.
Expand Down
20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,26 @@ Every tab is deep-linkable (for example `#tasks/<id>` or `#flows/<run-id>`), so

The viewer is read-only by design: it reflects board state, it never mutates it.

## Share

`agent-board share` publishes a single artifact — a design, spec, task, or knowledge note — as a public link, so you can send it to someone who has neither the repo nor the CLI. The unit is one artifact (not the whole board), which keeps redaction trivial: you share exactly the file you pick.

```sh
agent-board share design <id> # a wireframe, flattened to one self-contained page
agent-board share spec <id> # spec / task / knowledge render as Markdown
agent-board share task <id> --open # also open the link in a browser
agent-board share list # links published from this project
agent-board share rm design <id> # delete a share and its backing gist
```

Each share is stored as a **secret GitHub gist** (created through your existing `gh` auth) and rendered by a small static viewer. A design's HTML bundle is inlined into one file — local stylesheets, scripts, images, and `url(...)` assets become inline content and data URLs, while CDN/absolute references are left alone — so the recipient sees the mockup exactly as the board does, with nothing to install. Re-running `share` on the same artifact updates the same gist, so the URL stays stable.

The web viewer carries the same action: every task, spec, knowledge, and design detail has a **Share** button that posts to a localhost-only endpoint and shows the link inline, so you can publish without leaving the board.

Setup is one-time: authenticate `gh` with the `gist` scope (`gh auth login`), and enable GitHub Pages for the viewer (served from `docs/share`). Until Pages is live the command also prints the raw gist URL as a fallback. Point shares at a different viewer with `AGENT_BOARD_SHARE_VIEWER`.

A secret gist is link-private, not access-controlled: anyone with the URL can open it, and it lives on github.com. That fits "send this to a colleague"; it is not a substitute for real authentication.

## Concepts

A board lives in one of two places:
Expand Down
Empty file added docs/.nojekyll
Empty file.
22 changes: 22 additions & 0 deletions docs/cli-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,28 @@ Babel + `.jsx` screens) into agent-board storage and records `wireframe.md`
metadata. `agent-board web` serves the bundle in the Wireframes tab; no
project-specific `package.json` preview script is required.

## Share

```sh
agent-board share design <id> [--target gist] [--open]
agent-board share spec <id> [--open]
agent-board share task <id> [--open]
agent-board share knowledge <id> [--open]
agent-board share list
agent-board share rm <design|spec|task|knowledge> <id>
```

Publishes one artifact as a public link. The payload is uploaded as a secret
GitHub gist through your existing `gh` auth (the `gist` scope is required), and a
static viewer at `docs/share` renders it. A `design` is flattened to a single
self-contained HTML file (local stylesheets, scripts, images, and CSS `url(...)`
become inline content and data URLs; CDN/absolute references are left untouched);
`spec`, `task`, and `knowledge` are shared as Markdown. The gist id is recorded in
`shares.json` at the project root, so re-running `share` updates the same gist and
the link stays stable. Enable GitHub Pages (from `docs/share`) to make the link
render, or override the viewer with `AGENT_BOARD_SHARE_VIEWER`. A secret gist is
link-private, not access-controlled.

## Flows

```sh
Expand Down
Loading
Loading