Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
318f5f0
feat: add declarative Figma canvas authoring
Justineo Jul 27, 2026
2b526fa
ci: support tagged MCP prereleases
Justineo Jul 27, 2026
cb50fc1
chore(plugin): use alpha MCP release
Justineo Jul 27, 2026
9ad65bf
fix(extension): use valid canvas data namespace
Justineo Jul 27, 2026
ccab505
feat: expand Figma canvas authoring support
Justineo Aug 4, 2026
bca69a9
fix: address canvas authoring review feedback
Justineo Aug 4, 2026
55c4ed6
fix: gate canvas writes by Figma editor type
Justineo Aug 4, 2026
9f365e5
fix: harden canvas authoring workflows
Justineo Aug 4, 2026
3dcfe90
feat: finalize agent plugin distribution
Justineo Aug 5, 2026
e2ca868
fix: harden canvas authoring workflows
Justineo Aug 5, 2026
4025168
fix: stabilize canvas reconciliation
Justineo Aug 5, 2026
6144dca
fix: strengthen canvas design quality guardrails
Justineo Aug 5, 2026
609b4bd
docs: clarify canvas text line breaks
Justineo Aug 5, 2026
8716ee7
feat: add bounded canvas delegation workflow
Justineo Aug 5, 2026
a66524d
fix: harden canvas sizing and exact identity resolution
Justineo Aug 5, 2026
b7b1785
fix: extend get_code execution deadline
Justineo Aug 5, 2026
71dc9e3
fix: stabilize canvas lookup and removal
Justineo Aug 5, 2026
c76b098
docs: refine canvas imagery source guidance
Justineo Aug 5, 2026
9500851
fix: isolate canvas failure rollback
Justineo Aug 5, 2026
0508d6d
refactor: simplify canvas hardening
Justineo Aug 5, 2026
07394a9
feat: harden Figma canvas authoring
Justineo Aug 8, 2026
6708672
refactor: streamline Figma agent guidance
Justineo Aug 8, 2026
ac7f804
fix: clarify canvas authoring recovery
Justineo Aug 8, 2026
e6cc405
fix: require explicit Figma session routing
Justineo Aug 8, 2026
2f39cca
refactor: align Figma authoring guidance
Justineo Aug 9, 2026
2bee1d8
fix: stabilize Figma resource authoring
Justineo Aug 9, 2026
35aa59f
refactor: focus Figma authoring guidance
Justineo Aug 9, 2026
e178b56
fix: recover cold Figma reads
Justineo Aug 9, 2026
f49a7cc
fix: close authored Figma systems
Justineo Aug 9, 2026
7d7c366
refactor: focus Figma authoring semantics
Justineo Aug 9, 2026
c99ea42
docs: codify Figma agent evaluation loop
Justineo Aug 9, 2026
33164b7
fix: align Canvas flex with CSS defaults
Justineo Aug 9, 2026
7afc988
refactor: close Figma resources before propagation
Justineo Aug 9, 2026
541c421
docs: refine Figma agent evaluation guardrails
Justineo Aug 9, 2026
4503b0c
refactor: sequence Figma authoring by semantics
Justineo Aug 9, 2026
826acb9
fix: preserve native Figma authoring state
Justineo Aug 9, 2026
8c73323
docs: clarify the Figma authoring reasoning model
Justineo Aug 9, 2026
9ff551b
fix: normalize Figma native update state
Justineo Aug 9, 2026
4a6da90
fix: harden Figma canvas reconciliation
Justineo Aug 9, 2026
7177e83
fix: bound MCP design read results
Justineo Aug 9, 2026
17bfd2f
fix: preserve MCP gateway request state
Justineo Aug 9, 2026
8bcb80f
docs: clarify isolated Figma authoring
Justineo Aug 9, 2026
bc23767
chore: automate Codex dev plugin reinstall
Justineo Aug 9, 2026
1db04e6
ci: verify published MCP version on pull requests
Justineo Aug 9, 2026
eed2b17
fix(canvas): resolve instance and geometry edge cases
Justineo Aug 11, 2026
12625b0
refactor(extension): consolidate paint and codegen helpers
Justineo Aug 11, 2026
c94a43d
refactor(extension): simplify response and metadata handling
Justineo Aug 11, 2026
a1ba47b
ci: verify MCP version after publishing
Justineo Aug 11, 2026
90866f4
feat: automate Codex dev plugin refresh
Justineo Aug 11, 2026
39ca2ac
fix: harden Figma agent workflows
Justineo Aug 11, 2026
8e321e7
fix: refine Figma canvas authoring workflows
Justineo Aug 12, 2026
d765a1b
fix: improve Figma canvas authoring fidelity
Justineo Aug 14, 2026
406177f
fix: harden canvas authoring runtime and evaluation
Justineo Aug 16, 2026
f97d028
feat: strengthen Figma canvas authoring workflow
Justineo Aug 25, 2026
d2580dc
fix: track image views in authoring evals
Justineo Aug 25, 2026
76db268
fix: remove unused runtime assignment
Justineo Aug 25, 2026
257c737
fix: harden canvas typography and image variants
Justineo Aug 25, 2026
da5ebd0
fix: harden canvas apply recovery
Justineo Aug 25, 2026
d81ce76
docs: clarify component instance replacement
Justineo Aug 25, 2026
73aebe7
fix: enforce precedent-backed icon roles
Justineo Aug 25, 2026
0381401
feat: evolve Figma canvas authoring
Justineo Sep 2, 2026
8e5a078
feat: refine Figma authoring judgment
Justineo Sep 2, 2026
1fea471
feat: refine canvas authoring and website experience
Justineo Sep 10, 2026
59784ad
fix: fingerprint extension sources in clean checkouts
Justineo Sep 10, 2026
113d29a
refactor: use globby for runtime source discovery
Justineo Sep 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
"owner": {
"name": "TemPad Dev"
},
"description": "Agent plugins for using TemPad Dev design evidence in coding workflows.",
"description": "Agent plugins for reading Figma evidence and authoring native designs with TemPad Dev.",
"plugins": [
{
"name": "tempad-dev",
"source": "./agent-plugins/tempad-dev",
"description": "Use selected Figma nodes as agent-ready evidence for project-consistent UI implementation.",
"description": "Connect your coding agent to Figma. Create and edit native designs, inspect existing designs, and implement UI in your codebase.",
"category": "Design"
}
]
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,14 @@ jobs:
- name: Install browser runtime
run: pnpm --filter @tempad-dev/extension test:setup

- name: Check agent plugin
run: >-
pnpm agent-plugin:dev &&
test -z "$(git status --porcelain --untracked-files=all --
agent-plugins/tempad-dev
.agents/plugins/marketplace.json
.claude-plugin/marketplace.json)"

- name: Type check
run: pnpm typecheck

Expand Down
16 changes: 15 additions & 1 deletion .github/workflows/publish-mcp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@ name: publish-mcp

on:
workflow_dispatch:
inputs:
tag:
description: npm dist-tag
required: true
default: latest
type: choice
options:
- latest
- next
- alpha

permissions:
contents: read
Expand Down Expand Up @@ -35,4 +45,8 @@ jobs:

- name: Publish
working-directory: packages/mcp-server
run: npm publish --access public
run: npm publish --access public --tag "${{ inputs.tag }}"

- name: Verify published version
working-directory: packages/mcp-server
run: npm view "@tempad-dev/mcp@$(node -p "require('./package.json').version")" version
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,10 @@ stats-*.json
.wxt
web-ext.config.ts
dist
.dev/
coverage
.artifacts/
.vitest-attachments/
packages/*/coverage
packages/extension/tests/**/__screenshots__/

Expand Down
4 changes: 0 additions & 4 deletions .lefthook.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,6 @@ pre-commit:
group:
piped: true
jobs:
- name: sync-agent-plugin
glob: '{skill/SKILL.md,agent-plugins/tempad-dev/skills/figma-design-to-code/SKILL.md}'
run: pnpm sync:agent-plugin
stage_fixed: true
- name: lint
glob: '*.{ts,js,mjs,cjs,mts,cts,vue}'
run: pnpm exec eslint --fix {staged_files}
Expand Down
217 changes: 99 additions & 118 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,121 +2,102 @@

## Purpose

Provide a single entry point for coding agents. This file links to package-level guides and highlights repo-wide constraints and workflows.

## Repo map (high level)

- `packages/extension/` — Figma plugin + MCP tools implementation
- `packages/mcp-server/` — MCP server runtime
- `packages/shared/` — shared types and contracts
- `packages/plugins/` — plugin-side code and transforms
- `agent-plugins/` — shared agent plugin bundles and platform manifests

## Start here

- `packages/extension/AGENTS.md`
- `packages/mcp-server/AGENTS.md`
- `packages/shared/AGENTS.md`
- `packages/plugins/AGENTS.md`

## Global conventions

- Package manager: `pnpm`
- Prefer repo-level scripts unless a package explicitly documents otherwise.
- When creating commits, use Conventional Commits (for example: `feat: ...`, `fix: ...`, `docs: ...`, `chore: ...`).

## Common commands

- Typecheck: `pnpm typecheck`
- Lint (and format): `pnpm lint:fix`
- Test (watch): `pnpm test`
- Test (run): `pnpm test:run`
- Test (coverage): `pnpm test:coverage`
- Extension node tests: `pnpm --filter @tempad-dev/extension test:node`
- Extension browser tests: `pnpm --filter @tempad-dev/extension test:browser`
- Extension browser setup: `pnpm --filter @tempad-dev/extension test:setup`

## Doc index

- `TESTING.md`
- `docs/testing/architecture.md`
- `docs/extension/mcp-get-code-requirements.md`
- `docs/extension/mcp-get-code-design.md`
- `docs/extension/mcp-browser-gateway-design.md`
- `docs/marketing-screenshots.md`

## Guardrails

- Keep changes minimal and consistent with existing style.
- Avoid adding new global dependencies unless explicitly requested or approved.
- Keep pull request descriptions concise. Do not include a validation section unless explicitly requested.

## Contributing & verification

### Tech stack (repo-wide)

- Package manager: `pnpm` (workspace scripts are commonly run as `pnpm -r ...`).
- Language: TypeScript.
- Extension: Vue 3 + WXT (Web Extension Toolkit).
- MCP server: Node.js 18+ + `@modelcontextprotocol/sdk` + WebSocket transport.
- Shared contracts: `zod` schemas.
- Build tool (non-extension packages): `tsdown`.

### Key scripts

Run these at repo root unless noted.

- Dev extension: `pnpm dev`
- Dev site: `pnpm dev:site`
- Build everything: `pnpm build`
- Build site: `pnpm build:site`
- Build extension: `pnpm build:ext`
- Build plugins: `pnpm build:plugins`
- Build MCP: `pnpm build:mcp`
- Typecheck all packages: `pnpm typecheck`
- Lint all packages: `pnpm lint` / auto-fix: `pnpm lint:fix`
- Test all packages: `pnpm test:run`
- Coverage report: `pnpm test:coverage`
- Format: `pnpm format`
- Zip extension artifact: `pnpm zip`

### Verification checklist (agent-driven changes)

Pick the checks that match your change.

1. Always

- `pnpm typecheck`
- `pnpm lint` (or `pnpm lint:fix`)
- `pnpm test:run`

2. Extension UI / codegen

- `pnpm dev`
- In Figma, open TemPad Dev panel and validate the impacted section (e.g. “Inspect → Code”).

3. Extension build / packaging

- `pnpm build:ext`
- `pnpm zip`

4. Rewrite subsystem

- `pnpm --filter @tempad-dev/extension build:rewrite`
- Optional: `pnpm --filter @tempad-dev/extension tsx scripts/check-rewrite.ts`
- Requires `FIGMA_EMAIL`, `FIGMA_PASSWORD`, `FIGMA_FILE_KEY`.

5. MCP schemas / tool behavior

- If you change tool schemas/contracts: update `packages/shared` first, then `packages/mcp-server`, then `packages/extension`.
- Re-check payload limits and omission rules; see `docs/extension/mcp-get-code-requirements.md` and `docs/extension/mcp-get-code-design.md`.

## Testing notes

- Testing runbook and required checks: `TESTING.md`.
- Testing architecture and coverage model: `docs/testing/architecture.md`.
- Root coverage scope is configured in `vitest.config.ts` as the single source of truth.
- Root coverage excludes build artifacts (`**/dist/**`, `**/.output/**`) to avoid polluted reports.
- Root coverage provider is `istanbul` to avoid V8 remap parse failures under Vite 8 dependency trees.
- Extension browser tests run in Playwright via `packages/extension/vitest.browser.config.ts`.
- Do not introduce jsdom-based tests in this repository.
Use this file as the repo-wide router and source of global invariants. Read only
the package guide and conditional runbook required by the task; do not preload
every linked document.

## Repository routing

| Work area | Read next | Responsibility |
| ----------------------------- | ------------------------------- | -------------------------------------------------------------------------------- |
| `packages/extension/` | `packages/extension/AGENTS.md` | Figma extension, UI, codegen, browser runtime, and MCP tool implementation |
| `packages/mcp-server/` | `packages/mcp-server/AGENTS.md` | MCP server, Hub, transport, and tool exposure |
| `packages/shared/` | `packages/shared/AGENTS.md` | Shared schemas, types, and contracts |
| `packages/plugins/` | `packages/plugins/AGENTS.md` | Plugin transforms and sandboxed plugin-side code |
| `skill/` and `agent-plugins/` | This guide | Shared agent skills, manifests, compatibility wrappers, and marketplace metadata |

For a cross-package change, read the guides for every affected package. For a
repo-wide documentation, configuration, or release task, this root guide is the
default authority unless a routed document says otherwise.

## Repo-wide invariants

- Package manager: `pnpm`. Prefer repo-level scripts unless a package guide
explicitly requires a filtered command.
- Keep changes minimal and consistent with existing style. Do not add global
dependencies without explicit approval.
- When a tool schema or shared contract changes, update `packages/shared` first,
then `packages/mcp-server`, then `packages/extension`.
- Generated artifacts are not source. Follow the owning workflow and never edit
ignored or generated output to simulate a source change.
- Do not create or amend commits unless explicitly requested. When creating a
commit, use Conventional Commits.
- Keep pull request descriptions concise. Do not add a validation section unless
explicitly requested.

## Agent plugin invariants

- `agent-plugins/tempad-dev/` is the tracked release source shared by Codex and
Claude. The plugin is distributed through the Git marketplace, not npm.
- Edit `skill/` for `figma-design-to-code`; the development generator copies it
into the tracked release plugin. Edit the tracked
`agent-plugins/tempad-dev/skills/figma-canvas-authoring/` source directly.
- The portable `plugin.json` and `mcp.json` own shared manifest and MCP fields.
`pnpm agent-plugin:dev` synchronizes client compatibility wrappers, the copied
design-to-code skill, derived icons, and shared marketplace metadata; do not
hand-edit those derived fields or copies.
- `.dev/plugins/tempad-dev-dev/` is the ignored local build. Generate it with
`pnpm agent-plugin:dev`; never edit it directly.
- Run `pnpm agent-plugin:dev` after a change to any generator input, inspect all
tracked synchronized outputs, and include the intended release-source changes.
Ordinary `pnpm build` must not modify agent-plugin artifacts.
- Keep Codex and Claude development support equivalent. Both manifests must
launch the same working-tree MCP runtime.
- Release MCP configuration must use `@tempad-dev/mcp@latest`, never an alpha
tag, fixed version, or local path.
- Before preparing, running, reviewing, or asking the user to test an end-to-end
Figma authoring task, read `docs/testing/agent-authoring-evolution.md`. It is
the sole detailed runbook for runtime refresh, plugin replacement, clean-task
identity, evidence review, fix placement, and candidate promotion.

## Core commands

Run these from the repo root:

| Task | Command |
| --------------------------------- | ----------------------------- |
| Development | `pnpm dev` |
| Build all packages | `pnpm build` |
| Typecheck | `pnpm typecheck` |
| Lint / auto-fix | `pnpm lint` / `pnpm lint:fix` |
| Test once | `pnpm test:run` |
| Coverage | `pnpm test:coverage` |
| Format | `pnpm format` |
| Generate development agent plugin | `pnpm agent-plugin:dev` |

Use package-owned commands from the applicable package guide when a narrower
check is sufficient.

## Conditional documentation

| Task | Read first |
| ------------------------------------------------------- | --------------------------------------------------------------- |
| Test selection, required checks, or troubleshooting | `TESTING.md` |
| Test runtime or coverage architecture | `docs/testing/architecture.md` |
| End-to-end authoring evolution or live agent evaluation | `docs/testing/agent-authoring-evolution.md` |
| Extension implementation or MCP behavior | `packages/extension/AGENTS.md`, then its routed design document |
| Public agent-plugin installation or usage documentation | `agent-plugins/tempad-dev/README.md` |
| Marketing screenshot work | `docs/marketing-screenshots.md` |

## Verification

Follow `TESTING.md` and every affected package guide. The default repository
checks are:

1. `pnpm typecheck`
2. `pnpm lint`
3. `pnpm test:run`

Add build, browser, packaging, rewrite, coverage, or live Figma checks only when
the routed guidance and change risk require them. Browser runtime tests must use
Playwright; do not introduce jsdom-based tests.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,7 @@

- Extension: [packages/extension/CHANGELOG.md](packages/extension/CHANGELOG.md)
- MCP server: [packages/mcp-server/CHANGELOG.md](packages/mcp-server/CHANGELOG.md)
- Agent Plugin: [agent-plugins/tempad-dev/CHANGELOG.md](agent-plugins/tempad-dev/CHANGELOG.md)
- Plugins SDK: [packages/plugins/CHANGELOG.md](packages/plugins/CHANGELOG.md)

For the coordinated publication process, see [Releasing](docs/releasing.md).
Loading
Loading