Introducing Taskless

There's a particular brand of tired that comes from telling a coding agent the same thing for the fifth time. "We don't use any." "We don't import from internal/." "Don't cast through unknown to get around the type system."
The agent agrees. It apologizes. It might even thank you for the clarification. Then on the next PR, different teammate, same agent, same mistake. It fixes one any and writes a new one three lines down. It updates one import path and misses the other. It gets the rule today and forgets it by morning.
Coding agents make mistakes. That's what they do, and it's fine. The harder problem is that corrections don't compound. The markdown file you wrote last week is one input among many, re-read every run, weighed against whatever the model finds most salient this time around.
AI code reviewers have a different shape of the same problem. Determinism isn't part of how they're built. They notice things, flag things, make suggestions, which is useful work and the thing they're good at. It does mean that the same pattern can get two different answers on two different Tuesdays. Review worth trusting is deterministic: same pattern, same answer, on Monday and Friday, first PR and thousandth.
Markdown Is A Suggestion
The current shape of all this is AGENTS.md, skills/, .cursor/rules, CLAUDE.md. Every coding assistant has its own flavor, and the mechanism underneath is always the same: stuff your project conventions into a markdown file, shove the markdown into the prompt, and hope the model listens.
Sometimes it does. Sometimes it doesn't. When it doesn't, it tells you a completely reasonable-sounding story about why this particular case was different. Which is the worst kind of wrong, the kind you can't debug.
Markdown is a suggestion dressed up like a rule.
What Should Happen
When you correct a bot on a PR, that correction should become a thing. A rule. A check. Something deterministic that says "this pattern is not allowed" and returns the same answer on Monday, on Friday, on the thousandth PR, forever.
That's what we built.
Taskless turns corrections into syntax-tree rules. Tag @taskless on a PR comment, file an issue, or just talk to your coding agent inside your IDE. Your correction gets turned into an ast-grep rule (actual static analysis, with pass and fail examples) that runs on every PR, in every IDE, on every check. Syntax trees are where we start. More languages, more file types, project structure, anything worth correcting twice fits the same shape.
Correct once. Enforced forever. That's the whole pitch.
How It Actually Works
You can start without an account, and we'd recommend trying it that way first. The Taskless CLI auto-detects Claude Code, OpenCode, Cursor, and anything else that follows the Agent Skills spec. Drop it into your repo and you'll have rules running locally in about sixty seconds:
npx @taskless/cli
That installs a set of agent skills that teach your agent how to create, improve, and check rules. Then you say something like "create a taskless rule that catches direct fetch() calls without error handling" and the agent writes the rule into .taskless/rules/, validates it against your code, and you're done. Everything stays local.
Run them whenever:
npx @taskless/cli check
Exit code 1 on errors, so you can drop it straight into CI.
Connect a free Taskless account and you also get the GitHub integration (PR comments, issues, and a dashboard that opens PRs back at your repo with proposed rules), AI-assisted rule generation with test cases, and the org-level things teams actually end up needing: tracing, auditing, rule-based memory management, the boring stuff that matters.
Why We Built It
Every team we've worked on has had the same weird ritual: a senior engineer leaves the same review comment on the same pattern for months, until either the pattern dies or the engineer does. The AI era moved the ritual around. Same comment, new audience.
A reviewer that remembers is what teams need. Software only remembers when the memory lives in a file that runs code.
If you've ever left the same PR comment twice, give it a shot. And if you've left it five times, we'd really like to hear from you.