Turn a one-shot Skill into a goal-driven execution loop that keeps going until success criteria are met or time runs out.
English | 简体中文
Not a magic autonomous agent platform — a more honest execution wrapper for long-running tasks with explicit success criteria.
A lot of tasks do not fail because they are impossible. They fail because:
- they stop after one attempt
- the completion criteria are vague
- long-running work has no built-in validation loop
- the final output says “done” but nobody knows whether it actually meets the bar
GoSkill is meant to address that gap:
turn a one-shot task into a goal-driven execution pattern with retries, checks, and a stopping condition.
It is better thought of as a goal-driven execution helper, not an all-powerful autonomous framework.
If a normal Skill runs once and returns, GoSkill is the pattern where you:
- define the goal
- define the success criteria
- keep trying / checking / retrying
- stop only when the goal is met or time expires
| Scenario | Normal function / Skill | GoSkill |
|---|---|---|
| One-shot short tasks | ✅ | — |
| Long-running iterative work | — | ✅ |
| Explicit acceptance criteria | 🟡 | ✅ |
| Built-in status tracking | 🟡 | ✅ |
| Multi-attempt execution loops | 🟡 | ✅ |
The value of GoSkill is not “more intelligence”, but “better execution discipline around goals”.
pip install -e .from goskill import goskill
@goskill(
goal="Migrate an Android project to HarmonyOS",
criteria={
"compile": "0 errors",
"test": "100% pass",
"performance": ">= 90%"
},
max_hours=48
)
def migrate():
return {"done": True}
migrate()from goskill import GoSkill
skill = GoSkill(
goal="Analyze 1000 financial reports",
criteria={
"coverage": ">= 90%",
"report": "complete"
},
max_hours=24,
max_attempts=20,
verbose=False, # optional: suppress runtime logs
)
result = skill.run(lambda: {"coverage": 95, "report": "complete"})
print(result)
print(skill.status)
structured = skill.run_with_result(lambda: {"coverage": 95, "report": "complete"})
print(structured)A tiny demo is included in the repo:
python examples/basic_usage.pyIt shows:
- how to define a goal
- how to define criteria
- how to run and inspect status
The library now offers two output styles:
run()returns the raw task resultrun_with_result()returns a structured result object with success/status/attempts/report
Instead of only passing a function, you describe the task as:
- goal: what should be achieved
- criteria: what counts as success
- max_hours: how long it is allowed to keep trying
- max_attempts: how many attempts are allowed (optional)
If the criteria are not met, GoSkill does not assume one execution is enough. It keeps going until:
- success
- timeout
- or manual stop
Built-in status lets you inspect:
- current goal
- attempt count
- elapsed runtime
- max runtime
- terminal reason (
terminal_status) - latest criteria check
- latest execution result
Define goal + success criteria
↓
Run task function
↓
Check if result meets criteria
↓
Success → return result
Not enough → wait and retry
↓
Repeat until success or timeout
- large refactors
- long-running analysis tasks
- automation with explicit acceptance criteria
- research-style iterative tasks
- workflows that need execution + validation + retry in one wrapper
- simple one-shot Q&A
- tiny synchronous functions
- tasks with no meaningful acceptance criteria
- production-grade distributed orchestration systems
GoSkill currently targets a single-process, lightweight goal-driven execution loop.
It does not try to provide:
- distributed orchestration
- multi-node scheduling
- advanced persistence recovery
- enterprise queueing systems
That boundary makes the project more trustworthy, not less.
Right now GoSkill is best understood as:
- an execution pattern prototype
- a lightweight Python helper
- an experimental wrapper for OpenClaw / agent workflows
It is not yet a full long-running autonomous agent platform.
That clarity is a feature, not a weakness. Better alignment = higher trust.
make install-dev
make test
make build
make version- README.md — Chinese version
- CONTRIBUTING.md — contribution guide
- CHANGELOG.md — release notes
- SECURITY.md — security notes
- RELEASE.md — release process
- Makefile — common dev commands
- SKILL.md — OpenClaw Skill-oriented usage
If you're building long-running, goal-driven workflows, give it a Star ⭐