You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue is the root continuity issue for finishing the LibreCode brand repository. A new contributor, maintainer, or AI agent should be able to start here, inspect the linked repository material, and continue the work without relying on prior chat history.
The repository itself is the source of truth. Use LibreSign/brand only as an implementation reference for engineering quality, accessibility, maintainability, licensing organization, and release process. Do not copy LibreSign-specific brand decisions into LibreCode.
Start here
When resuming this work:
read this issue completely;
inspect the current main branch before making changes;
compare the current implementation with LibreSign/brand only where this issue explicitly asks for architecture or quality parity;
work in small reviewable pull requests;
preserve DCO sign-off on every human-authored commit;
do not create the first stable release until external homologation is explicitly complete.
If PR #8 is still open, its content is nevertheless the intended completion plan; do not lose or overwrite that context.
Current baseline
Already present:
canonical Git repository;
naming/pronunciation baseline;
canonical SVG artwork;
colors and typography;
Typst manual source;
reproducible asset generation baseline;
PDF/UA-1 compile target;
CI manual build;
release workflow for v*;
CC BY-SA 4.0 for documentation/artwork;
AGPL-3.0-or-later for automation;
SPDX/REUSE structure;
privacy/data-minimization policy;
trademark usage policy;
brand asset quality checks.
Completion objective
Bring LibreCode to the same engineering and maintenance standard reached in LibreSign/brand, while preserving LibreCode's independent identity.
The final system must be reproducible, openly editable, accessible, reviewable, maintainable by humans, and straightforward for future contributors to update.
1. Repository architecture
Target structure:
source/ — canonical editable inputs;
guidelines/ — normative brand rules;
manual/ — Typst manual;
scripts/ — deterministic generation and quality checks;
Adopt Typstyle via the maintained typstyle-rs/typstyle-action.
pin the Action to a full immutable commit SHA;
keep the human-readable version as a comment;
let Dependabot update the Action;
use the same formatting baseline as LibreSign unless a LibreCode-specific reason requires otherwise.
Recommend Tinymist for editor diagnostics/linting.
Do not require Tinymist in CI unless it demonstrably catches useful issues beyond compiler + formatter.
Typst compiler
Keep an exact Typst compiler version in setup-typst.
Do not use latest or a floating range.
Compiler upgrades must be deliberate because they can change layout, pagination, PDF structure, accessibility tagging, or generated output.
Dependabot does not manage arbitrary with: typst-version values. That exact pin is intentional.
5. PDF accessibility and navigation
Reach the LibreSign baseline:
PDF/UA-1 output;
semantic document title;
semantic headings;
linked table of contents;
bookmarks;
TOC destinations landing at the top of section pages;
alt text for meaningful images;
decorative section numbers marked as PDF artifacts;
correct Portuguese document language;
selectable text;
sensible reading order;
independent veraPDF PDF/UA-1 validation in CI.
Automated validation does not replace human review.
Perform page-by-page visual review and subjective accessibility review before declaring completion.
6. CI, supply chain, and repository quality
Apply these conventions:
pin every third-party GitHub Action to a full 40-character commit SHA;
retain the version as a comment, e.g. # v6.0.0;
make scripts/check_brand.py enforce immutable Action pins;
add grouped weekly Dependabot for the github-actions ecosystem;
rely on the installed DCO GitHub App instead of adding a competing custom DCO workflow;
keep REUSE compliance;
keep brand quality checks;
keep manual/PDF validation checks.
When a maintained GitHub Action exists for a tool and Dependabot can manage it, prefer it over an arbitrary hardcoded download script unless reproducibility requires a standalone binary.
7. Licensing
The repository is intentionally multi-license.
Target model:
documentation + official artwork: CC-BY-SA-4.0;
scripts/automation: AGPL-3.0-or-later;
fonts: upstream licenses;
trademark rights: separate.
Required:
keep SPDX per-file metadata;
keep LICENSES/;
keep REUSE compliance;
add root LICENSE with the exact CC BY-SA 4.0 text so GitHub recognizes the primary repository license;
make README explicitly explain that scripts and third-party fonts use different licenses.
clear-space geometry is deterministic from canonical artwork;
editorial scope is complete and LibreCode-specific;
Typstyle gate passes;
Actions are SHA pinned;
Dependabot is configured;
REUSE passes;
brand quality checks pass;
PDF builds as PDF/UA-1;
veraPDF passes;
navigation/bookmarks/alt text/artifacts are correct;
visual/accessibility human review is complete;
root LICENSE exists and multi-license scope is clear;
trademark registration facts are verified/documented;
repository metadata is applied;
mutable latest works.
The first stable version is complete only after:
external homologation is complete;
accepted feedback is merged;
explicit stable-release approval is given;
versioned release workflow succeeds and artifacts/checksums are verified.
New-chat handoff
If this work is resumed in a fresh chat, give the assistant only:
https://github.com/LibreCodeCoop/brand
and instruct it to:
Read issue #1 first, then inspect #3, #4, #6, open pull requests, current main, and CI. Treat the repository as the source of truth and execute the remaining checklist in issue #1. Use LibreSign/brand only as the engineering-quality reference, not as a source of LibreCode-specific brand decisions. Do not create v1.0.0 until external homologation is explicitly complete.
That should be sufficient to reconstruct the intended work without relying on chat memory.
Epic: complete the LibreCode brand system
This issue is the root continuity issue for finishing the LibreCode brand repository. A new contributor, maintainer, or AI agent should be able to start here, inspect the linked repository material, and continue the work without relying on prior chat history.
The repository itself is the source of truth. Use
LibreSign/brandonly as an implementation reference for engineering quality, accessibility, maintainability, licensing organization, and release process. Do not copy LibreSign-specific brand decisions into LibreCode.Start here
When resuming this work:
mainbranch before making changes;docs/libresign-parity-plan.mdonce merged;LibreSign/brandonly where this issue explicitly asks for architecture or quality parity;If PR #8 is still open, its content is nevertheless the intended completion plan; do not lose or overwrite that context.
Current baseline
Already present:
v*;Completion objective
Bring LibreCode to the same engineering and maintenance standard reached in
LibreSign/brand, while preserving LibreCode's independent identity.The final system must be reproducible, openly editable, accessible, reviewable, maintainable by humans, and straightforward for future contributors to update.
1. Repository architecture
Target structure:
source/— canonical editable inputs;guidelines/— normative brand rules;manual/— Typst manual;scripts/— deterministic generation and quality checks;assets/— generated-asset policy/build contract;docs/— architecture, ADRs, references, registration facts, completion plan;LICENSES/+REUSE.toml— precise licensing metadata.Rules:
examples/if it remains only a placeholder and normative examples live directly in the manual.2. Canonical artwork and asset generation
Keep
source/artwork/*-master.svgas the geometric source.Generated SVG/PDF/PNG derivatives must come from
scripts/build_assets.py+brand-assets.json.Do not manually recreate generated assets.
Clear-space refactor
The current LibreCode implementation still calculates part of the clear-space construction inside Typst. Replace it with the proven architecture:
canonical SVG -> deterministic Python geometry -> generated technical SVG -> Typst composition onlyThe clear-space unit must be derived from LibreCode's own official artwork. Do not reuse LibreSign geometry or measurements.
3. Manual editorial completion
Review and complete the LibreCode manual with LibreCode-specific evidence for:
Do not invent photography, illustration, motion, campaign templates, sub-brand systems, or other rules without approved source material.
Language
LibreCode may remain in Portuguese.
Use plain, direct Portuguese:
4. Typst maintainability
Preserve:
manual/main.typ= content;manual/components.typ= reusable layout functions;manual/theme.typ= brand tokens.Required cleanup:
entry.at(0)with named fields;setrules for defaults;showrules only for structural transformation;Formatter/lint workflow
Adopt Typstyle via the maintained
typstyle-rs/typstyle-action.Recommend Tinymist for editor diagnostics/linting.
Do not require Tinymist in CI unless it demonstrably catches useful issues beyond compiler + formatter.
Typst compiler
Keep an exact Typst compiler version in
setup-typst.Do not use
latestor a floating range.Compiler upgrades must be deliberate because they can change layout, pagination, PDF structure, accessibility tagging, or generated output.
Dependabot does not manage arbitrary
with: typst-versionvalues. That exact pin is intentional.5. PDF accessibility and navigation
Reach the LibreSign baseline:
Automated validation does not replace human review.
Perform page-by-page visual review and subjective accessibility review before declaring completion.
6. CI, supply chain, and repository quality
Apply these conventions:
# v6.0.0;scripts/check_brand.pyenforce immutable Action pins;github-actionsecosystem;When a maintained GitHub Action exists for a tool and Dependabot can manage it, prefer it over an arbitrary hardcoded download script unless reproducibility requires a standalone binary.
7. Licensing
The repository is intentionally multi-license.
Target model:
CC-BY-SA-4.0;AGPL-3.0-or-later;Required:
LICENSES/;LICENSEwith the exact CC BY-SA 4.0 text so GitHub recognizes the primary repository license;8. Trademark and registration records
Issue #4 owns registration verification.
Separate:
TRADEMARKS.md— usage policy;docs/registrations.md— factual public registration data.Verify LibreCode data only from official INPI evidence.
Do not copy LibreSign registration facts.
Publish only useful public verification data. Exclude unnecessary administrative/payment identifiers and personal data.
If registration is verified and in force, a concise statement may appear in the manual; full details belong in
docs/registrations.md.9. README and repository presentation
README should:
Do not add external status badges unless they accurately describe this repository.
10. Repository metadata
Issue #6 owns this step.
Apply and verify:
Do not close #6 until GitHub reports the expected values.
11. Release model
Use:
latest= mutable development/homologation prerelease frommain;vX.Y.Z= immutable approved release.The current manual may be usable before
v1.0.0.Do not create
v1.0.0just because it builds or is usable.Stable release gate:
main;Execution order
Preferred order to minimize rework:
latestfor homologation;Definition of done
The LibreCode brand system is complete for homologation when:
latestworks.The first stable version is complete only after:
New-chat handoff
If this work is resumed in a fresh chat, give the assistant only:
https://github.com/LibreCodeCoop/brandand instruct it to:
That should be sufficient to reconstruct the intended work without relying on chat memory.