News for hackers. Stuff that matters.

Show HN: Taskless, turning AGENTS.md and PR comments into static analysis checks

Hey HN, I'm the solo developer behind Taskless. I built it because I got tired of praying AGENTS.md, .cursor/rules, etc. were getting followed. It's really annoying (and expensive) to fix stuff in later turns.

The CLI (MIT, https://github.com/taskless/cli) works with your local agent to read PR comments, fixup commits and agent files, find the corrections that keep coming up, and write them as ast-grep rules for code or Vale rules for prose. A model writes each rule once, and after that there's no LLM in the check. If your linter can already do the job, it uses your linter.

Things I really like about what I've built:

- Cross-file checks. The same static analysis tools that work on a single file can be used by scripts to check cross-file invariants. ast-grep captures what a rule cares about in each file, then a small TypeScript check gets all of those captures at once, so "every env var is declared in the TOML" becomes testable.

- Real fixtures. A cross-file / cross-language rule by definition needs more than one file to prove it works, so fixtures are whole directory structures. Every fixture goes through your agent and a deterministic sweep in the CLI before the rule is recorded.

- It generates cool reports. Because convincing your boss that you can use linter technology to reduce coding agent errors means less babysitting.

I ran it on some repositories I respect, and still found some improvements based on recurring PR comments and their respective agent and convention markdown files.

n8n: https://tskl.es/gh/n8n-io/n8n/20261026/1C3I3yVjFyfxNFEpl4qFA...

Effect: https://tskl.es/gh/Effect-TS/effect/20261104/1g4gRoMmoADlysg...

Pre-empting the privacy question, onboarding makes a shareable report like the ones above at a random impossible to guess URL, and you can delete it right away (it was just nicer than trying to read TUI output). Telemetry respects DO_NOT_TRACK=1 and TASKLESS_TELEMETRY_DISABLED=1.

To try it, run npx @taskless/cli and ask your agent to set up Taskless.

Please poke holes in the CLI and the skill. I used a lot of determinism in onboarding to keep the agent from wandering and guessing, and I'd like to know where that helps and where it gets in your way.

( no comments | on HN )

There are no comments yet.