Skip to content
Agentmart
Submit a tool

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

IndexedMIT★ 1
Write a review

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.

Book a call

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.

We use your email only for this newsletter. Privacy

About

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.

Use cases: frontend, writing

No 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

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
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from avaropoint

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.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying changes?

CallGet help
Cite this page

changes skill. Agent Mart. https://agentmart.dev/skills/avaropoint-changes (last updated 2026-10-24)