changes
How a tenant changes after it exists — adding a component such as the content service, deciding what rebuilds, and what must pass before a change is accepted.
Skill by avaropoint
Chalk Labs
Need help deploying changes?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/avaropoint-changes
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: frontend, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/changes
What's inside
- Skill name
changes- Description
- How a tenant changes after it exists — adding a component such as the content service, deciding what rebuilds, and what must pass before a change is accepted. Use when adding a component to a tenant, when a tenant needs to hold content, when a blueprint has moved and a tenant must catch up, or when a build regenerated more (or less) than expected.
- License
- MIT
- Instructions
- 164 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Changing a tenant that already exists A tenant is not generated once. It adopts blueprints, grows components, and is rebuilt. Creating one is `tenants`; this skill is everything after that. Rules, names and tables live in `architecture/generation.md`. This skill says which verb to run and which section to read. ## Add a component ``` weblisk component help # what this installation can build weblisk component <kind> init [--platform go] ``` **An orchestrator is a tenant's first component, not the tenant.** A tenant is a set of siblings in one module, each registering with the orchestrator on start. `architecture/orchestrator.md`, "What a tenant consists of", gives the set two homes: what a tenant is running is `GET /v1/services`, and what it should build and start is `.weblisk/config.yaml`. Ask the first when reporting; the second is an intention, and a declared component may not be running. Buildable kinds come from this installation's blueprints; the command lists them when the name is wrong. A tenant's second component is where the interesting failures live — the planner must be told about the tenant, not just the blueprints, or it plans a fresh module over an existing one. `--resume` continues a run that died on a provider limit. Only `server init` and `component <kind> init` are resumable; do not suggest it for other verbs. ### Check the listed kind has a blueprint to generate from `component help` lists a kind when its architecture blueprint states an `## Endpoints` table and declares bindings. Whether the pipeline then *reads* that blueprint is a second question, and the two sets are not the same. Before running `component <kind> init` for a kind you have not built before, run it and read the announced blueprint list. **If the component's own blueprint is not in it, stop.** The run will otherwise plan from the protocol and the platform alone, produce a plausible file set, and pass its own checks — a component generated against nothing, reported as generated. ### Content `weblisk component content init` builds the tenant's content service — the thing that lets a tenant hold authored text rather than only run code. What it serves, what custody means, and what declaring a repository requires are all `architecture/content.md`; none of it is repeated here. Two things about it are operational rather than specified, and are what an agent gets wrong: - **Generating it is not the end.** A content service with no repository declared holds nothing, and a tenant that has one must still be told which stores it governs. - **Nor is it running.** `weblisk component content start --detach` runs it against the tenant's orchestrator. Declaring `content:` in `.weblisk/config.yaml` makes `weblisk server start` run it with the rest, and `weblisk server stop` stops it with them. - **The first adoption call is meant to fail.** Adopting a store that already holds bytes is two calls: the first returns a census and refuses, the second passes that census digest back as `if_match`. Treat the first refusal as the answer, not as an error to retry or work around — see `architecture/content.md`, "Declaring a Repository". ## A programme names what to build Adopting a programme answers a **build plan**: the services it needs that the tenant does not run, each with its blueprint, in build order. `schemas/programme.md`, "What a programme runs on", is the one home of which service each block needs, the name each registers under and the order; do not keep a list of your own. - Build each from its own blueprint, in that order. A service marked `adoption: opt-in` — the fabric — is never pulled in as another's dependency, so name it when the plan does. - The specified way is a change: `weblisk change plan --adopt <ref>`, approved by a person, then `change apply` in the tenant (`architecture/cli.md`, "Changes"). Where this CLI does not build `change` yet, `component <kind> init` is how a service is added. - A programme is not running because it was adopted. Only an empty plan says the tenant runs everything the programme needs. ## Decide before you build The rebuild decision is **per file**, and the default answer is KEEP. `architecture/generation.md`, "Deciding whether a file must be rebuilt", declares the conditions; first match wins. Two of them are **refusals, not instructions**: - a file that differs from what generation wrote - a file generation cannot show it wrote Neither regenerates. They are reported apart because the remedy differs: one sends somebody looking for their own edit, the other is what is true after a manifest is lost or a run was interrupted before recording. **Never treat a refusal as "rebuild".** Doing so overwrites the edit the verdict exists to protect. A blueprint change does not regenerate a component. It is assessed against each file, and a file the change does not reach is left alone. One digest over the whole prompt cannot make that distinction — it answers "did anything change" and never "did anything I depend on change". ### Has upstream moved since it was built? ``` weblisk build status --upstream [--json] ``` Run it before deciding. It compares every blueprint the build recorded — path, sha256, declared version — with the corpus a rebuild would read now, by `schemas/programme.md` §Versioning's table, and compares the recorded set with the graph a rebuild resolves. It changes nothing. - **`unmaintained` is not `changed`.** The bytes moved and the version did not:
From avaropoint/weblisk-blueprints, MIT.
More from avaropoint/weblisk-blueprints
- 0.587score
operators
avaropoint
Create and use a Weblisk operator identity with the CLI — which identity signs, where it lives, and what holds its private half.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
hubs
avaropoint
How to generate, run, and verify a Weblisk hub (the orchestrator a tenant runs).
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
kinds
avaropoint
What sorts of thing the platform can talk about — kinds are declared data, capabilities are code, and nothing switches on a kind.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
tenants
avaropoint
Create and operate a Weblisk tenant with the CLI, and grow it past its first component.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
go
avaropoint
Go-only facts for a tenant generated with --platform go — module layout and the two mux rules that panic at startup.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
rust
avaropoint
Rust-only facts for a tenant generated with --platform rust — the Cargo workspace layout, the shared-crate rule, and the error and concurrency rules that fail…
SkillAFreshness: A★ 1Claude Code +9 - 0.547score
domains
avaropoint
Create and start a Weblisk domain controller with the CLI.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
gateways
avaropoint
Create and start the Weblisk application gateway with the CLI.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
agents
avaropoint
Create, start, and list Weblisk agents with the CLI.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
blueprints
avaropoint
How to read a Weblisk blueprint — declaration blocks, section forms, and which sentences bind.
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
node
avaropoint
Node-only facts for a tenant generated with --platform node — project layout, the module and routing rules that fail at startup, and how the process must shut…
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
cloudflare
avaropoint
Cloudflare-Workers-only facts for a tenant generated with --platform cloudflare — per-Worker layout, the zero-runtime-dependency rule, which storage binding…
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 11, 2026 (20 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/avaropoint/weblisk-blueprints
- Website
- weblisk.dev
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from avaropoint
- 0.587score
operators
avaropoint
Create and use a Weblisk operator identity with the CLI — which identity signs, where it lives, and what holds its private half.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
hubs
avaropoint
How to generate, run, and verify a Weblisk hub (the orchestrator a tenant runs).
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
kinds
avaropoint
What sorts of thing the platform can talk about — kinds are declared data, capabilities are code, and nothing switches on a kind.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
tenants
avaropoint
Create and operate a Weblisk tenant with the CLI, and grow it past its first component.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
go
avaropoint
Go-only facts for a tenant generated with --platform go — module layout and the two mux rules that panic at startup.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
rust
avaropoint
Rust-only facts for a tenant generated with --platform rust — the Cargo workspace layout, the shared-crate rule, and the error and concurrency rules that fail…
SkillAFreshness: A★ 1Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get changes running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
changes skill. Agent Mart. https://agentmart.dev/skills/avaropoint-changes (last updated 2026-10-24)