Contributing

Licence, the board-driven workflow and keeping the documentation current.

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 clip or cast;
  • 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 in data/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 of scripts/docs/casts/ has no recording (or the other way round);
  • a registry command or Figma MCP tool is missing from reference/cli.md (run npm run docs:gen);
  • a ud.* command of package.json is 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 (hugo into 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.