AGPL source
Fork the package. The license is AGPL-3.0.
SlopKit Agency
Open source. Bring your own key. Point it at any provider and any model.
Six named GitLab users work the merge request. They open drafts, comment
as themselves, and move kit and status labels.
You run the stack. You keep the keys.
AGPL source
Fork the package. The license is AGPL-3.0.
Your API keys
Workers read the provider secret from your cluster.
Any Flue model
Set FLUE_MODEL or model in .slopkit/config.ts.
GitLab is the office. Your model key stays yours.
Comments and labels dispatch a named team on the merge request.
Set the provider key on the workers. Point Agency at the model you use.
Call sheet
Named GitLab users. They mention each other with @kit-*. Add more under .slopkit/agents/.
Scaffolder
@kit-scaffolder
Sizes a spec into one kit::task, or into epics that split on merge.
Planner
@kit-planner
Deepens the plan on the merge request before implementation starts.
Developer
@kit-developer
Implements on the plan branch. Marks the MR ready for review.
Reviewer
@kit-reviewer
Requests changes or approves on the merge request.
Tester
@kit-tester
Checks the preview. Sends it back or deploy-approves.
Documenter
@kit-documenter
After merge or a direct push, inventories docs. Writes a follow-up or skips. Always leaves a note.
Custom
.slopkit/agents/
Add a role, a persona, and a GitLab identity for your project.
Merge webhooks stage the split. You run a webhook acceptor that enqueues work. Workers claim jobs and run Flue in a devenv sandbox.
Richard refines a kit::spec until a human marks it ready and merges it.
That merge enqueues scaffolder split. Tiny specs become one task. Larger specs become epics. Epic merge then opens tasks.
Hermione deepens the plan on the same MR Elliot will code on.
Gilfoyle and Donna cycle until the work ships or hits the budget.
After the feature lands, Barbara inventories README, docs, and wiki. She opens a docs MR or writes why she skipped.
The loop has a budget. Status moves through one tool.
After five review or test label cycles since the last status::blocked, the next move is blocked. Only a human leaves that state.
Agents call mr_set_status. Draft, approve, and request-changes are side effects of that call.
Dispatch comes from kit and status labels, optional @kit-* mentions, and the previous note's agent when that differs.
Deploy the acceptor and workers on your cluster, set your provider key, include the CI template. Start has the YAML.