Libertas CodeBot workflow
Use this workflow when writing or changing App source. The cards select the context needed for the task; their linked references own the complete contracts. Read the applicable owner before implementing a feature. Public documentation and the project's public SDK provide this authoring context without private maintainer instructions.
Understand the App model
Read the App interaction model before choosing types and operations:
- App is data interaction: define the data, its meaning, the operations and how the App handles them.
- Data is the GUI: clients turn the declared data into editors, results and actions; source documentation explains them and the Display Template arranges them.
- One interaction for humans, AI and other Apps: all use the same declared Endpoint protocol and App behavior, under their applicable access checks.
This model supports Libertas's collaboration goal.
1. Prepare the task
Read the App's own public development entry and contract when it has them. Establish the requested behavior and current scope from its source and tests. Preserve its source language unless the user requests a migration, and keep the project's compatible dependency pins.
Then read:
- Source policy: authority, SDK versions and missing contracts.
- App contract and its App design card: design, source ownership, types, permissions, lifecycle and the compile loop.
- Code organization: the generated rules for common responsibilities, the chosen language's layout, the change procedure and the review checklist when creating or reorganizing source; the practice owns them.
- One language: the Rust or TypeScript quick guide and its generated rules card, Rust App rules or TypeScript App rules. TypeScript is under development and not release ready.
- Source documentation for schema-visible declarations and for a public function, including changes to its behavior; its quick reference and function-comment template give the shapes.
- Annotation inventory before using schema syntax.
2. Select the task contracts
Select every applicable row, including when extending an existing App. Open the card first, then its linked owner for the feature being changed.
Data and interaction
| The task changes | Required context |
|---|---|
| Types, fields, attributes, Enumerations, Unions, keys, defaults or Schema Paths | Data model, with the annotation inventory for each spelling. |
| An Endpoint, its protocol Union, roles, errors, access, hidden context or conformance | Endpoint protocol; the protocols/runtime router maps each Endpoint feature to its card. |
Endpoint entry, Actions, RequestConfirmation, ConstrainedBy, action controls or native Back |
Actions, entry and choices. |
Link or LinkOnly |
Links. |
Workflows: EditRequest, WorkflowRequest or PrevRequest |
Workflows. |
| Subscriptions and their reports | Subscriptions. |
| AI Search | AI Search. |
| Endpoint callback code | Endpoint callback code and the installed SDK. |
Field calculations: CalculationRequest, CalculationRoot, calculation CopyFrom/CopyTo or a calculated allowed set |
Calculations, with the Endpoint protocol card. |
| Persistence, including Apps with no Endpoint | Persistent data, data names and the installed SDK's Data API. |
| Existing protocol or stored representations | Data-type evolution and its full owner before changing names, cases, fields or ordering. |
CopyFrom, CopyTo or constrained choices |
The data model card for the shared path contexts and copy rules, and the operation's card: Endpoint protocol, links, workflows, subscriptions, calculations or, for constrained choices, actions. |
| Validation expressions, dynamic bounds or String formats | Validation rules, with the ValidationRules quick reference for the distinct rule, bound and Pattern forms. |
StringResources templates, notifications, FormattedText values, data names or translated resources |
Messages (LMF1); Studio does not check LMF1 templates. |
Presentation and AI input
| The task changes | Required context |
|---|---|
A field's text, metadata, answer controls, Foldable, InlineChoices, SuppressLabel, UIIncludeDescription, media or Link rendering |
Field presentation; the presentation overview routes the other presentation cards. |
display.json: layouts, master-detail panes, labels and titles, page controls, promotion and flattening, conditions, hints and style |
Display Template and its display presets. |
Date and time types, Money, PhysicalUnit, Bitflags, Format or FormattedText placement |
Formatted output, with Messages (LMF1) for templates and Translation for locale documents. |
| Charts | Charts, plus 3D charts for a 3D chart; the cards link the full 2D and 3D contracts. |
| Document-sourced input, including a new field on an importing page | AI Import, including preservation of person-supplied values. |
Dependencies and runtime APIs
| The task changes | Required context |
|---|---|
| External types or task dependencies | App dependencies and the task-creation dependency check. |
| Permissions or TCP/UDP access | Permissions and, for network access, the network-access card. |
| Physical or virtual Matter devices | Matter, its descriptor/status contracts and the installed SDK's typed API. |
| Other runtime calls, such as timers or notifications | The chosen language reference and installed SDK declarations for the exact API and callback lifecycle. |
| Persistent keys, values, scans, batches or transactions | Persistent data card, key encoding and transactional KV API. |
3. Implement in source
Edit App source, ordinary project metadata such as Cargo.toml or
package.json, and the source Display Template (display.json). Generated
schemas, localized documents, dependency locks, target/release manifests and
allocated versions remain generated. A translation task writes only its
designated handoff output under the
translation card.
Apply the required App contract throughout implementation. Use only public SDK types and listed annotations. Fix diagnostics in their owning source; let Studio resolve dependencies instead of weakening types or patching generated output. Report a missing public contract under the source policy before guessing behavior.
Use recipes and public display presets when a starting shape helps. Respect their stated limits: declaration examples with empty functions still require runtime implementation.
4. Validate and hand off
Follow delivery for native checking, Studio validation and review of generated results. Compilation does not complete deployment, translation or Plaza publication; follow those delivery sections when the task includes them, with the deployment and publication card. Deploy only when requested by the user.
Finish with the handoff report: changed behavior and contracts, permissions/hosts/dependencies, wire/order impact, checks and remaining work.
Client implementers
When the task implements or changes a Libertas client (Studio, Android or iOS) rather than an App, load the client runtime card instead of the App-authoring cards.
For guided learning, start at the human homepage.