project
GoSkill - an open-source tool for facilitating long-running tasks, featuring built-in retry loops and state tracking.
GoSkill is a tool for advancing long and complex tasks. It encapsulates tasks using decorators or classes, transforming a 'one-time skill call' into a continuous process that 'advances towards a goal until success criteria are met or a timeout occurs'...
What is GoSkill?
GoSkill is a tool for facilitating long and complex tasks. It encapsulates tasks using decorators or classes, upgrading the "one-time skill call" to an execution model that "continuously progresses towards a goal until success criteria are met or a timeout occurs." GoSkill is suitable for automation scenarios requiring clearly defined acceptance criteria, state tracking, and phased completion, such as large-scale refactoring and long-term analysis.
GoSkill's main functions
-
Target definitionSupported
goalThe parameters clearly define the task objectives and express the task intent in a structured way. -
Success criteria:pass
criteriaThe dictionary defines multi-dimensional acceptance criteria and quantifies completion standards. -
Continue retrying: Built-in execution loop, automatically waits and continues to try if the target is not met, until success or timeout.
-
State tracking:supply
statusView the number of attempts, runtime, and check results in real time. -
Structured return:
run_with_result()Returns a structured result object containing success, attempts, and criteria_report. -
Flexible packagingSupports decorators
@goskilland classGoSkillTwo calling methods, lightweight embedding into existing code.
How to use GoSkill
-
Install dependenciesExecute after cloning the repository
make install-devComplete environment configuration. -
Define task: Use decorators or instantiation
GoSkillClass, pass ingoal,criteria,max_hoursParameters such as these. -
Write logicImplement the specific task logic in a function or lambda and return the result dictionary.
-
Execute: call
run()Get the original result, or callrun_with_result()Obtain a structured execution report. -
Check status:pass
skill.statusView the current goal, number of attempts, runtime, and achievement status. -
Running Example:implement
python examples/basic_usage.pyView the smallest working demo.
Key information and usage requirements for GoSkill
-
Project PositioningA single-machine, single-process, lightweight goal-driven execution helper, a non-distributed scheduling system.
-
Applicable BoundariesSuitable for long-running, complex tasks and scenarios requiring clear acceptance criteria; not suitable for single-question-and-answer sessions or very small synchronous functions.
-
Environment dependencyA Python environment that manages the development, testing, and build processes through Makefiles.
-
License AgreementSupports the Apache-2.0 open-source license, allowing for free commercial use and secondary development.
-
Current status: An experimental execution mode prototype, a lightweight wrapper for the OpenClaw / Agent workflow.
GoSkill's core advantages
-
Target-drivenUpgrade the task from "execute it once" to "continuously advance around the goal" to ensure that the results are acceptable.
-
Transparent processBuilt-in status tracking mechanism allows you to view the number of attempts, duration, and progress towards achieving the goal at any time.
-
Lightweight and non-invasiveIt can be integrated simply by using decorators or class encapsulation, without modifying the original business logic.
-
Expected alignmentClearly define project boundaries, do not commit to enterprise-level capabilities such as distributed scheduling, and establish credible expectations.
GoSkill project address
- GitHub repositoryhttps://github.com/AIPMAndy/goskill
Comparison of GoSkill with similar competing products
| Comparison Dimensions | GoSkill | Tenacity | Perfect |
|---|---|---|---|
| Core positioning | Target-driven execution auxiliary tools | Universal Retry Decorator Library | Modern data flow workflow engine |
| Target definition | Native support goal parameter |
No goal concept | Defined indirectly through Flow |
| Acceptance Standards | Structured criteria dictionary |
Exception type judgment only | Supports custom status checks |
| Continue retrying | Automatic cycle when target is met or timeout is exceeded | Enriching avoidance strategies | Task-level retry configuration |
| State tracking | Built-in status Real-time viewing |
Stateless objects | Complete UI and API state flow |
| Execution encapsulation | Decorator + Class, Lightweight and Non-Intrusive | Minimalist access to decorators | Flow needs to be defined, which is quite heavy. |
| Deployment dependencies | No, pure Python single-machine operation | none | Requires Perfect Server/Cloud |
| Applicable Scenarios | Long-running tasks/complex tasks/clearly defined acceptance criteria | Function-level exception retries | Data Pipelines/ETL/Scheduled Data Transfer |
Application scenarios of GoSkill
- Code project migrationIt is suitable for large-scale project restructuring or cross-platform migration, such as migrating an Android project to the HarmonyOS system. By setting hard indicators such as zero compilation errors and test pass rate, it can be continuously iterated until the target is met.
- Batch data processingSuitable for long-term analysis tasks, such as batch analysis of 1,000 financial reports or processing large-scale datasets, it automatically advances the process using coverage and integrity standards, avoiding manual round-by-round checks.
- Automated acceptance processFor CI/CD or testing processes that require clear acceptance criteria, the "execution-verification-retry" process is encapsulated into a closed loop to ensure that each deployment meets the preset quality threshold.
- Scientific research and iterative experimentsBy defining phased success criteria, the experiment progress can be automatically tracked, reducing repetitive manual operations.
- Agent workflow enhancementAs a long-task execution encapsulation layer for OpenClaw or AI Agent, it makes up for the shortcomings of single Skill calls that "stop as soon as they are completed" and improves the reliability of completing complex tasks.