Repository navigation
Folder: ui-craft, a second Folder skill that sets the craft bar for every interface an agent builds (F14 addendum, manifest schema 4) - #585
annavesela wants to merge 1 commit into
Conversation
|
The Operator (@annavesela) asked to publish this. Merging needs the required code-owner review (@agentrozjedemeai, already requested) on head |
…g addendum point 2, #565, DEV-6676) Buddy's rules gain the section "Paměť: gbrain" ("Memory: gbrain") right after his coordination work: gbrain first at the start of a conversation and for any question about a person, an Organization, a project, a meeting or a decision (search, query, get_page), only then the web or files; what he learns about the user goes to gbrain, and after a batch of writes he checks that he can find it again; Hermes's built-in memory tool holds only operating preferences; without the gbrain tools he tells the user. These habits lived in the pilot's SOUL.md until it became the persona only, and without them a Buddy drifts to Hermes's built-in memory. Root 0210 gives gbrain to Buddy implicitly and to the other agents only on the user's explicit word, so AGENTS.md, the manual and the skills keep their text; a new test proves that no line of the section, nor get_page, reaches them on any preset in either locale. Template revision base-instructions-66 (main took 64 in #574, and the open #585 holds 65): .hermes.md changes by the section and its revision line, every other generated file by its revision line only. The digest pin, the tools test pins and the AGENTS.md and manual snapshots move with it, and docs/decisions.md records F14's addendum. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…g addendum point 2, #565, DEV-6676) (#581) Buddy's rules gain the section "Paměť: gbrain" ("Memory: gbrain") right after his coordination work: gbrain first at the start of a conversation and for any question about a person, an Organization, a project, a meeting or a decision (search, query, get_page), only then the web or files; what he learns about the user goes to gbrain, and after a batch of writes he checks that he can find it again; Hermes's built-in memory tool holds only operating preferences; without the gbrain tools he tells the user. These habits lived in the pilot's SOUL.md until it became the persona only, and without them a Buddy drifts to Hermes's built-in memory. Root 0210 gives gbrain to Buddy implicitly and to the other agents only on the user's explicit word, so AGENTS.md, the manual and the skills keep their text; a new test proves that no line of the section, nor get_page, reaches them on any preset in either locale. Template revision base-instructions-66 (main took 64 in #574, and the open #585 holds 65): .hermes.md changes by the section and its revision line, every other generated file by its revision line only. The digest pin, the tools test pins and the AGENTS.md and manual snapshots move with it, and docs/decisions.md records F14's addendum. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
d4525ea to
f0b94a1
Compare
|
@agentrozjedemeai Please review this PR. The head is |
f0b94a1 to
bbf8c5a
Compare
|
@agentrozjedemeai The branch conflicted with main after #592, so I rebased it. The new head is
Local verification on |
|
@agentrozjedemeai The branch conflicted with main again, so I rebased it. The new head is
Local verification on |
bbf8c5a to
ec1f4de
Compare
|
@agentrozjedemeai The branch conflicted with main again (#608 took |
ec1f4de to
644dd50
Compare
|
@agentrozjedemeai The branch conflicted with main again (#613 took |
644dd50 to
8e3fb83
Compare
|
@agentrozjedemeai Rebased again after #614 took |
8e3fb83 to
00736be
Compare
|
@agentrozjedemeai Rebased again after #621 took |
00736be to
5d3e5f9
Compare
|
Please hold the merge of this PR until v0.1.11-rc.6 is cut. The rollout coordinator decided on 2026-10-24 (~18:35Z) that rc.6 is cut from |
|
@immakermatty Understood. I'll hold the merge until you comment that v0.1.11-rc.6 is tagged, even if the review approves it before then. After the tag I'll rebase onto main if needed and merge only with an approving review on that head. |
|
v0.1.11-rc.6 is cut (tag on main b5c6521), so the merge hold is lifted. This PR can merge after its review; it goes into the next candidate. (DEV-6656, Platform v0.1.11 release mechanics) |
|
@immakermatty Thanks. @agentrozjedemeai The hold is lifted, and I rebased onto main |
5d3e5f9 to
3a1997f
Compare
|
Correction: the merge hold stays until the final v0.1.11 is tagged, not only rc.6. The release workflow accepts a final tag only on a commit that differs from the candidate (rc.6, b5c6521) in |
|
@immakermatty Understood. I'll hold the merge until you comment that the final v0.1.11 is out, even if the review approves it before then. The head |
|
LazurioPlatform v0.1.11 is out (2026-10-25 11:04:48Z), so the merge hold is lifted. This PR can merge after its review and goes into v0.1.12. (DEV-6656, Platform v0.1.11 release mechanics) |
|
@immakermatty Thanks. @agentrozjedemeai The hold is lifted, and I rebased onto main |
3a1997f to
97016ae
Compare
Every Lazurio Folder now carries a second skill, `ui-craft`, next to `new-module`, for Codex (.agents/skills) and Claude Code (.claude/skills) in the Folder's locale. It gives agents a concrete craft bar for apps, websites and dashboards: whether something should move at all, easing and duration, smoothness, accessible motion and hover gating, the phone baseline (inputs, safe areas, svh/dvh), worst-case real data, and browser verification before handoff. The project's own rules and design system always come first. The rules are newly written, retold from emilkowalski/skills at 2d228630 (MIT) with credit; no passages are copied. AGENTS.md and the new-module skill point to it, so agents whose harness does not list Folder skills still find it. Because the instruction manifest records exactly the outputs of its schema, the manifest moves to schema 4; schema 3 stays frozen as new-module only, and a Folder of schema 3 gains ui-craft on its next change only where nothing occupies the path (otherwise the planner refuses with unowned-file). Template revision base-instructions-62 with the new pinned digest. Proposed as an addendum to decision F14 in docs/decisions.md for Matěj to decide; the licensing table records the provenance. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@agentrozjedemeai Rebased again after #645 took |
97016ae to
368b2b1
Compare
Plan: DEV-6655. Implements Anna's billing decisions of 2026-10-21 on top of the billing slice from #306. Billing stays off by default; nothing is created in Stripe and nothing is deployed.
Decision 1: an Organization always has at least one Environment
TIERSnow starts at 1 (Start = 1–3 Environments).tierFor(0),quote("organization", 0)andplanQuantityChange(…, 0)throwOrganizationEnvironmentRequired. Every Organization quote has anenvironmentline, so the base-only quote no longer exists.409 { "error": "conflict", "problem": "organization-environment-required" }. Checkout refuses it before any Stripe customer or session is created.STRIPE_ORGANIZATION_ENVIRONMENTS_JSONwith an empty array for an Organization is refused at startup.Decision 3: IČO on invoices
custom_fieldsentry: keyico,type: "numeric",optional: true, labelIČO (identifikační číslo osoby),minimum_length=maximum_length= 8. This was checked against the SDK types (stripe-node 23,2026-09-30.endive). Stripe supportsdropdown,numericandtext, andnumericaccepts digits only. A personal Buddy never gets the field.invoice_creationonly works inpaymentmode, and Checkout'ssubscription_data.invoice_settingsonly acceptsissuer. So whenreconcileEventadopts the exact recorded Checkout of an Organization, it setsinvoice_settings.custom_fields = [{ name: "IČO", value }]on the subscription (supported since2026-06-24.dahlia). If the provider call fails, the adoption is rolled back, the webhook returns 503 and Stripe retries the event. Dashboard never stores or logs the value. The Customer'sinvoice_settings.custom_fieldswould also work. I chose the subscription because the IČO belongs to the Checkout of that subscription, and a later purchase states it again. The full reasoning is indocs/stripe-billing.md, section "IČO on invoices".Decision 2: follow-up for #307
The billing code has no cancellation and no Environment removal of its own: the portal keeps cancellation disabled, and the Stripe quantity update is still open in #307. So "the last Environment cannot be canceled alone, canceling the Organization ends all its Environments at the end of the paid period" is only documented here. The one piece that is already enforced is that
planQuantityChangerefuses 0. Implementation belongs to the lifecycle work in #307.Open points
invoices.updatecan still addcustom_fieldsto the finalized invoice has to be verified in the sandbox (M6).CZis my choice: the label is Czech and the format is the Czech IČO. Extending it to SK or all countries is a one-line change.mission-control-data.docs/stripe-billing.mdis also touched by Launchpad: the Marketplace's sentence follows the page's language and catalog when they arrive #389. A conflict may occur, in different sections.Verification
See the PR comment with the
bun run checkresult.🤖 Generated with Claude Code