agentleFS
eSoul-czeSoul-cz/skills/skills/esoul-data-task-guard/SKILL.md

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.

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
  1. Very specific:

    Read code, migrations, schema and data (SELECT, EXPLAIN, SHOW CREATE TABLE, describe).

    line 35
  2. Very specific:

    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, …

    line 37
  3. Distinctive:

    Stop work on that change. Finish the independent rest of the data task.

    line 45
  4. Very specific:

    Create the new work through esoul-tasking with its usual preview and approval.

    line 50
  5. Distinctive:

    Never create the task silently, and never make the change with the intention of creating the task "afterwards".

    line 56
  6. Distinctive:

    Never copy production personal data, credentials or tokens into the issue or Freelo.

    line 70

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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:

  1. 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.
  2. The solution would need a change the issue does not explicitly specify, in:
AreaExamples
Application codecontrollers, commands and queries, requests, resources, models or entities, services, observers, jobs, console commands, config, tests
Data modelmigrations, schema changes, added, removed or renamed columns, column types, nullable/unique, indexes, foreign keys, relations, enums, seeders, factories
Data changed through codeone-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-freelo mode, the Freelo task description in freelo-only mode. 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

  1. Stop work on that change. Finish the independent rest of the data task.
  2. Tell the user in one or two sentences: what is wrong, where, and the impact on data (how many records, which).
  3. Prepare the proposal: cause, proposed solution, alternatives where they matter, risks, impact on existing data, whether a backfill or recalculation is needed.
  4. Create the new work through esoul-tasking with 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.
  5. 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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.