esoul-data-task-guard
Skill1 starsChanged 13 days agoMITView on GitHub
Use on eSoul data tasks (label data-migration, legacy imports, data fixes, reports, analyses) whenever data work reveals a needed change to application code, migrations, schema, seeders or factories. Do not change code or the data model beyond what the issue specifies (approved in-scope changes are allowed); write any other fix down and create a new issue/task pair.
In this repository15 other files it gives its agents.
- codex/AGENTS.mdAGENTS.md
- esoul-freelo-task-authoringSkill
- esoul-maintain-application-documentationSkill
- esoul-mockup-authoringSkill
- esoul-model-routingSkill
- esoul-project-dataSkill
- esoul-project-lifecycleSkill
- esoul-taskingSkill
- esoul-uatSkill
- esoul-workflowSkill
- final-pr-reviewSkill
- freeloSkill
- gitmoji-commitSkill
- pre-pr-reviewSkill
- test-queueSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 3 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 35
Read code, migrations, schema and data (SELECT, EXPLAIN, SHOW CREATE TABLE, describe).
- Very specific: line 37
Write a proposal with a concrete diff, SQL or migration as an example in the text of the new work: the GitHub issue in github-freelo mode, …
- Distinctive: line 45
Stop work on that change. Finish the independent rest of the data task.
- Very specific: line 50
Create the new work through esoul-tasking with its usual preview and approval.
- Distinctive: line 56
Never create the task silently, and never make the change with the intention of creating the task "afterwards".
- Distinctive: line 70
Never copy production personal data, credentials or tokens into the issue or Freelo.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Data tasks: propose, do not patch
On a data task you are an analyst, not an implementer of application changes. Data work may uncover a problem and describe exactly how to fix it, but a fix to application code or the data model outside the issue's scope goes through the normal development cycle: its own issue, review, tests and planning. A fix made from a data branch bypasses all of them and drifts the code away from the migrations.
When it applies
Both hold:
- The task is data work: GitHub label
data-migration(or the repository's data category), a migration or import from a legacy system, a data fix, an inconsistency hunt, a report, a statistic, or an analysis. - The solution would need a change the issue does not explicitly specify, in:
| Area | Examples |
| Application code | controllers, commands and queries, requests, resources, models or entities, services, observers, jobs, console commands, config, tests |
| Data model | migrations, schema changes, added, removed or renamed columns, column types, nullable/unique, indexes, foreign keys, relations, enums, seeders, factories |
| Data changed through code | one-off PHP scripts, tinker, artisan commands that change production data |
It applies even when the change is "one line" or the user mentions it in passing. When unsure whether something is in the table, treat it as if it is. A schema change the issue explicitly specifies and that was approved is in scope and may be implemented.
What is allowed
- Read code, migrations, schema and data (
SELECT,EXPLAIN,SHOW CREATE TABLE,describe). - Analyse data, quantify the impact, prepare an anonymized sample of the faulty records.
- Write a proposal with a concrete diff, SQL or migration as an example in the text of the
new work: the GitHub issue in
github-freelomode, the Freelo task description infreelo-onlymode. A proposal in that text is fine; a proposal written into a file in the repository is not. - Finish every part of the data task that needs no such change.
When you hit a needed change
- Stop work on that change. Finish the independent rest of the data task.
- Tell the user in one or two sentences: what is wrong, where, and the impact on data (how many records, which).
- Prepare the proposal: cause, proposed solution, alternatives where they matter, risks, impact on existing data, whether a backfill or recalculation is needed.
- Create the new work through
esoul-taskingwith its usual preview and approval. Classify it by what the change touches, not where it was found: a schema change or migration is data work, an application change without schema change is backend, both are two linked pairs or one pair with the other side described. - Tell the user what was created and continue with the rest of the data task.
Never create the task silently, and never make the change with the intention of creating the task "afterwards".
What the new issue contains
On top of what esoul-tasking requires:
- Finding: what exactly does not match in the data, with numbers and an anonymized sample.
- Cause: why, with a link to the place in code or the migration.
- Proposed fix: concrete, with a diff or SQL as an example.
- Impact on existing data: backfill, recalculation, repeated import?
- Cost of not fixing it, so the work can be prioritized.
- A link to the data task where the finding came from.
Never copy production personal data, credentials or tokens into the issue or Freelo. Use anonymized samples or say where the data can be found.
When the user says "just do it"
An explicit instruction from the user overrides this skill. Say in one sentence that it is a change to application code or the data model outside the normal cycle; if the user insists, make the change. Do not argue repeatedly. Still create the task so the change is traceable, unless the user says otherwise.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

