Contributing
Licence, the board-driven workflow and keeping the documentation current.
Esta página está em inglês; a tradução está a caminho.
Licence#
UI Designer is proprietary software of Arthur de Araújo Farias. The source is visible in the repository, but it is not open source: contributions are by arrangement with the owner. Third-party components and their licences are listed in THIRD-PARTY-NOTICES.
The board drives the work#
Planning lives in planning.pb, a Project Board file in the repository. Open it with the Project Board extension.
- Requirements are issues of kind requirement (
CMD-1,LAY-9…) under heading issues that mirror the chapters of SRS-001. Each states its priority, type, verification and milestone. - Specifications are the comments of one issue each: SRS-001 (#247), FMT-001 (#2), CLI-001 (#3), AI-001 (#4), ARC-001 (#5), UI-001 (#6). To change a spec, change the comment on the board.
- Tasks are grouped by milestone (0.0 Specification to 1.0), with dependencies between them as links.
Code comments cite the requirement and section they implement (// CMD-30, ARC-001 §3.3), so a change can be traced both ways.
Keeping the documentation current#
The specification pages, the requirements table and the command reference of this site are generated; never edit them by hand.
| Pages | Generated by | From |
|---|---|---|
content/specifications/** |
scripts/docs-specs.mjs (npm run docs:specs) |
planning.pb |
content/reference/cli.md, plugin-api.md |
scripts/docs-cli.mjs (npm run docs:cli) |
the compiled registry, tool table and Plugin API coverage (out/) |
The user guide, the development pages, reference/file-format.md and the home page are written by hand in docs.src/content/. After changing the board or the commands, run npm run docs:gen && npm run docs:build and commit docs.src/; docs/ is built, not committed, and the docs workflow rebuilds and deploys it on push.
npm run docs:check (part of npm run lint) keeps the documentation in step with the product (PUB-8). It fails when:
- a guide page has no
cliporcast; - a clip or cast used by a page, or by the product page, is missing a file (
.webm,.mp4,.png,.gif;.cast,.gif) or its entry indata/clips.json/data/casts.json, or is longer than 20 s (a cast: 30 s); - a recording is used by no page, or a scenario of
scripts/docs/scenarios/or cast ofscripts/docs/casts/has no recording (or the other way round); - a registry command or Figma MCP tool is missing from
reference/cli.md(runnpm run docs:gen); - a
ud.*command ofpackage.jsonis mentioned neither in the guide nor in the reference, by id or by its title; - the product page’s plans differ from
plans.json; - the Portuguese guide (
content.pt-br/guide, once it exists) lists other pages than the English one; - the built site (
hugointo a temporary folder) has a broken internal link.
npm run docs:check -- --record also records every clip and cast again into a temporary folder and compares their lengths (±20 %) and frame counts with the committed ones; the scheduled workflow docs-check.yml runs it weekly. --no-build skips the Hugo build and the link check.
New user-facing strings go through t() in the pages and vscode.l10n.t() in the host, with their Brazilian Portuguese translation; see Translations.