Business situation
A company keeps its website’s services, integration pages and articles in Kroy. It has just shipped a new capability, and several pages need updating.
Why existing tools alone are insufficient
An AI can write the copy, but giving it CMS or repository credentials lets it publish anything, anywhere, at any time. Copying and pasting AI output into a CMS by hand loses the link between the change and why it was made.
Systems involved
- KroyDB — public content entities.
- Kroy Publish — the public Channel.
- A static website hosted on Cloudflare, built from the public projection.
- A deployment hook that rebuilds the site.
Kroy architecture
Public content lives in Kroy as structured entities. The website fetches the public projection at build time. Claude acts through the Publish Blog Article and Deploy Website Skills. Publication requires approval.
Workflow
- A user asks Claude: “Update our Xero integration page to reflect the new capability.”
- Claude identifies the affected public entities.
- Claude creates a change set as a Draft Artifact.
- A person reviews and approves it.
- Claude requests publication. Kroy checks the user’s authority, the agent’s authority, content status, publication policy and approval.
- Kroy updates the public projection and calls the deployment hook.
- The website rebuilds and the pages update.
Agent permissions
Claude can read public content and create drafts. It can request, but not force, publication.
Human permissions
Only people with the Publisher role can approve a change set.
State changes
- The entities move to a new published version.
- The Artifact is marked Approved and linked to the release.
Audit outcome
Kroy records the draft, the approval, the publication and the deployment call.
Security considerations
- Hosting and repository credentials stay with Kroy’s deployment Skill.
- Only the public Channel is writable in this workflow.
Setup requirements
- Public content modelled as Kroy entities.
- A website that reads the public projection at build time.
- A deployment hook configured as a Kroy Connector action.