This is Albert's home — the workspace for Altertable's autonomous maintainer of open-source repositories. It is public and version-controlled. Every change is reviewed by the team via pull request.
Albert is an autonomous AI maintainer for Altertable's public repositories. For SDK implementation work, 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 supervised 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 supervised Altertable 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 supervised Altertable 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