This is Albert's home — the OpenClaw workspace for the autonomous AI maintainer of Altertable's open-source SDKs. It is public and version-controlled. Every change is reviewed by the team via pull request.
Albert is an autonomous AI maintainer. The workspace, specs, and SDK repos form a three-layer system:
albert-workspace ← Albert's home: identity, skills, memory
|
| reads specs from altertable-client-specs
↓
altertable-client-specs ← versioned API specs, fixtures, constants, test plans
|
| consumed as git submodule (pinned to a tag)
↓
SDK repos ← implementations: altertable-ruby, altertable-swift, etc.
└── specs/ submodule → altertable-client-specs@v0.x.0
Typical flow when a new spec version ships:
- A spec change is merged and tagged in
altertable-client-specs(e.g.v0.3.0). - On each heartbeat, Albert runs
spec-status.sh, detects the new tag, and uses thesdk-bootstrapskill to open a PR in each outdated SDK, bumping itsspecs/submodule to the new tag and implementing the diff. - Team reviews and merges. Albert uses
sdk-releaseto cut a new SDK release.
Skills drive everything. Each skill in skills/ is a self-contained workflow Albert reads and follows. Skills reference composable rule bricks from rules/ instead of loading a monolithic instruction file. Skills share community file templates via skills/sdk-sync/templates/.
| Path | Purpose |
|---|---|
AGENTS.md |
Slim entrypoint: workspace layout, session startup, rules index, heartbeat pointer |
SOUL.md |
Persona, tone, boundaries |
IDENTITY.md |
Name, email, GitHub handle |
USER.md |
About Altertable and the core team |
TOOLS.md |
Environment-specific notes |
MEMORY.md |
Curated long-term memory |
HEARTBEAT.md |
Heartbeat routine |
rules/ |
Composable operating rule bricks — loaded per task, not all at once |
memory/ |
Daily logs — gitignored, not committed |
skills/ |
Operational skill definitions used by Albert |
scripts/ |
Utility scripts |
code/ |
Ephemeral work directory — gitignored |
Rule bricks in rules/ are focused, composable files. Each skill declares which bricks it depends on. Albert loads only what's relevant to the task.
| Brick | Purpose |
|---|---|
rules/memory.md |
Daily notes and MEMORY.md maintenance |
rules/contribution.md |
Fork/branch/PR workflow for SDK repos |
rules/quality.md |
Quality gates and staff-level PR checklist |
rules/team.md |
Working with team and external contributors |
rules/communication.md |
GitHub and Slack communication norms |
rules/change-control.md |
What workspace changes require PRs |
rules/safety.md |
Hard limits and human approval gates |
rules/specs.md |
Spec-to-SDK pipeline: specs submodule, update event chain |
| Skill | Description |
|---|---|
sdk-bootstrap |
Fork, clone, and wire up a new SDK repo or update an existing one to a new spec version |
sdk-implement |
Implement an SDK from a versioned spec — dispatched by sdk-bootstrap |
sdk-readme |
Write READMEs for SDK repos and monorepo roots following Altertable conventions |
sdk-release |
Release SDKs, write changelogs, and publish to language registries |
routine-maintainer |
Notification-driven maintainer routine to identify actionable work across Altertable SDK repositories |
ops-review |
Review community pull requests against Altertable SDK standards |
sdk-sync |
Keep shared configuration, community files, and CI templates consistent across SDK repositories |
ops-triage |
Triage incoming GitHub issues across Altertable SDK repositories |
ops-report |
Generate weekly status summaries covering PRs, issues triaged, spec alignment, and blockers |
- Fork this repository
- Create a branch:
feat/<short-desc>orfix/<issue-number>-<short-desc> - Commit your changes with a clear message
- Push to your fork
- Open a pull request against
main
- Website: https://altertable.ai
- Documentation: https://altertable.ai/docs
- GitHub: https://github.com/altertable-ai/albert-workspace