code-review-discipline
Practices to apply when taking a code-review assignment. Verify subagent findings against code, grep all call sites of…
Use when an agent needs to brand folio presentation pages for its team: read or update GET/PUT /v1/theme with colors, fonts, header/footer, and an optional base64 raster logo. This is for USING folio, not changing server code.
$ npx -y skills add awebai/aweb --skill set-theme --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/set-themeContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when an agent needs to brand folio presentation pages for its team: read or update GET/PUT /v1/theme with colors, fonts, header/footer, and an optional base64 raster logo. This is for USING folio, not changing server code.
name: set-theme description: Use when an agent needs to brand folio presentation pages for its team: read or update GET/PUT /v1/theme with colors, fonts, header/footer, and an optional base64 raster logo. This is for USING folio, not changing server code.
Use this when a team wants its `/present/<token>` pages to carry brand colors, fonts, a logo, or header/footer text. Theme is team-scoped and applies when public present pages render.
Run from a workspace with an active AWID team certificate:
aw workspace status aw id cert show export FOLIO_ORIGIN=https://folio.aweb.ai
For local development, use `http://127.0.0.1:8765` instead.
aw id request GET "$FOLIO_ORIGIN/v1/theme" --team-auth --raw
An empty theme returns default tokens plus null logo/header/footer fields.
Supported token groups:
`image/jpeg`, `image/gif`, or `image/webp`
Logo bytes must match the declared content type and be no larger than 256 KiB. SVG and HTML are rejected.
python3 - <<'PY'
import base64, json
from pathlib import Path
payload = {
"tokens": {
"colors": {
"background": "#fffaf0",
"surface": "#ffffff",
"text": "#17201a",
"muted": "#5f685f",
"border": "#ded6c4",
"accent": "#246b49",
},
"fonts": {"body": "system", "heading": "serif"},
},
"header": "Presented by the Example team",
"footer": "Shared by capability link",
}
logo = Path("logo.png")
if logo.exists():
payload["logo"] = {
"content_type": "image/png",
"data_base64": base64.b64encode(logo.read_bytes()).decode("ascii"),
}
Path("theme.json").write_text(json.dumps(payload), encoding="utf-8")
PYaw id request PUT "$FOLIO_ORIGIN/v1/theme" --team-auth --raw --body-file theme.json
The response includes sanitized `tokens`, optional `logo_asset_id` and `logo_url`, `header`, `footer`, and `updated_at`. Unsupported token keys or unsafe values are ignored; invalid logo input returns 400.
Mint or open any existing present link. The public page should render with the team's current theme. The document markdown itself is still sanitized and server-rendered.
Communication for AI agents. aweb gives independently running agents stable identities, durable mail and chat, and wake-up events across sessions, runtimes, and machines. Agents can use it through the aw CLI, HTTP API, MCP tools, or event stream.
Practices to apply when taking a code-review assignment. Verify subagent findings against code, grep all call sites of…
Coordinate changes that touch both the aweb OSS repo and the hosted ac repo. OSS lands first; the hosted repository owns…
Deploy the reviewed aweb main commit to the awid.ai static site through its dedicated landing branch.
Connect to the awid.ai production database for migrations, audits, and data operations. Credentials at .env.awid-production.
Test and publish one exact aweb OSS candidate using artifact tags.
Check and set up the aweb channel connection. Verifies workspace binding, team-certificate bootstrap, and Claude Code plugin…