{"slug": "realtime-semantic-advice-on-coding-standards-for-the-agents", "title": "Realtime semantic advice on coding standards for the agents", "summary": "Hapsland launched a realtime code-review tool that sends findings back to coding agents such as Codex CLI and Claude Code subagents as they edit, so mistakes are flagged before more code is built on them. The tool collects semantic context from the agent's diff, follows references to related definitions in other files, and sends only the changed type declaration or TypeScript function signature and body plus related code to an external classifier — Jev by default, or Cloudflare Clef/Clef-flash via the reviewBackend setting — while excluding the full file, edit diff, agent conversation, and unrelated source. Hapsland notes that classifiers like Jev store submitted data, that delivery and optional blocking feedback depend on the agent runtime and configuration, and that `hapsland --feedback-preview` shows the shared agent instructions with a synthetic finding without making a review request.", "body_md": "Catch design mistakes before your agent builds on them. Immediately slap its hand.\n\nHapsland lets you apply auto-review your coding agent changes and give it immediate feedback.\n\nIt does so in a smart way, collecting semantic context from the agent's diff.\n\nIt does it keeping your privacy in mind: no prompts or unrelated changes are sent to the classifier, and the review requests are built with respect to your access settings.\n\nIt sends findings back to the agent in realtime, so it can address a mistake before building more code around it.\n\nIt cares about your agents' context and attention, batching reviews together and discarding any stale reviews.\n\nIt is fully observable: you can see what goes to the classifier (e.g. Jev) and what comes to the agent.\n\nNo more AGENTS.md begging \"please use domain types\". Elevate your AGENTS.md instructions to realtime, and **slap that robot hand** immediately when your code style rule is violated.\n\nA type can allow combinations of values that make no sense. A function can assume its inputs satisfy a constraint that their types do not enforce. Spotting these problems can require reading definitions beyond the edited lines.\n\nHapsland finds the changed type or function and follows its references to gather related definitions, including those in other files. Each rule reviews the changed declaration with the related code it needs. If the necessary code is unavailable, Hapsland skips that rule.\n\nHapsland also reviews supported native edits made by Codex CLI and Claude Code subagents. When the runtime reliably identifies the editing subagent, Hapsland directs review feedback to it.\n\nSending source to a review service is a data-sharing decision.\n\nSome classifiers like Jev store your data and can do with it whatever they want.\n\nYour task prompt and conversation with the agent are not sent to the review backend.\n\nText copied into selected source code or configured rule questions can be sent as\npart of those inputs. See the [content-isolation contract and proof limits](https://github.com/dearlordylord/hapsland/blob/master/docs/review-contract-compatibility.md#review-content-isolation).\n\nYou choose which changed files can be reviewed and which files can supply related code.\n\nSelected source code and rule questions are sent to the selected external\nclassifier: [Jev](https://typesafe.ai) by default, or Cloudflare Clef/Clef-flash. It sees that code and those questions, not the agent’s\ntask or conversation. Hapsland maps its results to configured feedback messages.\nThe checker receives one type declaration, or a TypeScript function's\nsignature and body, plus related code reached through local\nreferences. What is NOT sent: the full file, edit diff, agent conversation, and\nunrelated source. With review credentials and no\nfile settings, all otherwise eligible files are selected. Set an explicit scope\nwhen you want a narrower boundary. See [configuration](https://github.com/dearlordylord/hapsland/blob/master/docs/configuration.md).\n\nThe animation starts with a small edit, expands to the declaration and related\ncode, then illustrates a feedback and repair loop. Feedback follows the edit; it does not\nundo it or guarantee a repair. Delivery and optional blocking feedback depend on\nthe agent runtime and configuration. See the [architecture guide](https://github.com/dearlordylord/hapsland/blob/master/docs/architecture.md)\nfor the flow and its boundaries. Run `hapsland --feedback-preview` to see the\nshared agent instructions with a synthetic finding; no review request is made.\n\nJev is the default. To use Cloudflare, set `reviewBackend` in your user\nconfiguration (project configuration cannot choose the backend):\n\n```\n{\n  \"version\": 1,\n  \"reviewBackend\": {\n    \"provider\": \"cloudflare\",\n    \"model\": \"clef\",\n    \"accountId\": \"0123456789abcdef0123456789abcdef\"\n  }\n}\n```\n\nUse your Cloudflare account ID and make `CLOUDFLARE_API_TOKEN` available to the\ninstalled runtime. The model can also be `clef-flash`; `hapsland --login` manages\nJev credentials. A shared limit catalog checks request bytes and question counts\nwhere documented, including Clef's 64-question limit. Token limits are recorded\nbut require a tokenizer before they can be enforced. See\n[provider configuration and limits](https://github.com/dearlordylord/hapsland/blob/master/docs/review-providers.md) for details.\n\nHapsland also manages review resources: each background service has separate pools for\neight preparation jobs and eight concurrent classifier request permits, plus\nlimits on retained state and advice output. See\n[review resources and limits](https://github.com/dearlordylord/hapsland/blob/master/docs/review-resources.md) for saturation behavior,\nconfiguration controls, and the distinction between collection and model limits.\n\nThe review request must fit the model’s context, including the rule questions. Hapsland limits how much related code it collects. Formal proofs check that the core keeps selected code within that configured size limit. A checked access-refusal case issues no command to read the excluded file.* Deterministic simulations exercise failures and recovery using that core; native integration tests check separate filesystem, transport, and host boundaries.\n\n* In the checked exclusion case, the core issues no source-read command for\nthe denied dependency. This is a proof of that case, not a general proof of\nabsence of leaks across every execution. Source parsing, filesystem observations,\nand network calls remain native code. See [proof scope and evidence](https://github.com/dearlordylord/hapsland/blob/master/docs/architecture.md#what-verification-establishes).\n\nBy default, authorized setup enables 7 editable JSON rule files with questions about code design.\n\nYou can edit these rules or write your own concern as a local JSONC file.\n\nInspect them with `hapsland rules list` or `hapsland rules show --id meaningless_combinations`.\n\nUse the [rule reference](https://github.com/dearlordylord/hapsland/blob/master/docs/rules.md) to inspect, manage, and test rules, or\nfollow [Write your first rule](https://github.com/dearlordylord/hapsland/blob/master/docs/write-first-rule.md) for a complete example.\nRule checks send selected source to your configured classifier; one result does\nnot establish rule accuracy. See [languages and limits](#languages-and-limits).\n\nTip\n\nmacOS arm64 · Linux arm64 · Runtime included.\n\nAsk your coding agent to install it:\n\nInstall Hapsland for my coding agent using [https://github.com/dearlordylord/hapsland/blob/master/docs/installation-workflows.md](https://github.com/dearlordylord/hapsland/blob/master/docs/installation-workflows.md). Let me review and approve the setup changes interactively. Ask me to enter any Jev key in the masked setup prompt, not in chat.\n\nReady-made packages are available for macOS arm64 and Linux arm64:\n\n```\nbrew install dearlordylord/tap/hapsland\nhapsland setup\n```\n\nRun `hapsland setup` from the Git repository you want reviewed. Follow the\nterminal prompts to choose your coding agent and confirm installing its hooks,\nthen restart that agent.\n\nThe public npm package returned **404 on 2026-10-06**; the npm commands below\nrequire a separate npm publication. Contributors can still use the\n[local checkout installation](https://github.com/dearlordylord/hapsland/blob/master/docs/installation-workflows.md#install-before-publication),\nwhich requires the development toolchain.\n\nBefore setup, choose your agent and [review file scope](https://github.com/dearlordylord/hapsland/blob/master/docs/installation-workflows.md#before-setup).\nHooks apply to the selected user profile across repositories.\n\nAfter a stable release is published and verified, install manually:\n\n1. \nInstall Hapsland: \n\n```\nnpm install -g --ignore-scripts @hapsland/hapsland\n```\n\n2. \nIn the Git repository you want reviewed, run: \n\n```\nhapsland setup\n```\n\n Select Claude Code, Codex CLI, and/or Pi with the checkboxes (arrows to move, Space to toggle, Enter to continue). Installed clients are checked and labeled. Unchecking a client leaves its installation intact. To skip the selector, use `hapsland setup claude` ,`hapsland setup codex` , or`hapsland setup pi` .\nPi requires Linux arm64 and a release accepted by setup; OpenCode setup is unavailable.Setup previews owned hooks, asks before applying them, accepts a missing Jev key through masked input, shows the selected key source and replacement instructions, and reports offline readiness. You can then approve one optional Jev key check using a built-in greeting; it sends no project code and may use paid credits.\n3. \nFinish current client work, restart the client normally, complete its native trust prompts. Follow the [inspection guide](https://github.com/dearlordylord/hapsland/blob/master/docs/status.md#opt-in-local-inspection) to enable recording, make a new supported edit, and inspect its review;\ninstallation alone does not establish that a review ran.\n\nThe hooks apply across the selected user profile, not just the repository where\nyou ran setup. Set [file selection](https://github.com/dearlordylord/hapsland/blob/master/docs/configuration.md) before reviewing\nprivate code. Installation and setup do not send code to Jev.\n\nThe npm command uses your configured global prefix and assumes its `bin`\ndirectory is on PATH. If installation fails on permissions or the command is\nmissing, use the [user-owned prefix alternative](https://github.com/dearlordylord/hapsland/blob/master/docs/installation-workflows.md#user-owned-prefix-alternative).\nThe package includes one Bun runtime per platform; command bundles share it.\n\nPublic registry availability is not established by this guide. See the\n[installation lanes](https://github.com/dearlordylord/hapsland/blob/master/docs/installation-workflows.md#stable-installation-and-ordinary-use)\nfor current distribution and host evidence.\n\nUpdate installed integrations with `hapsland update`; add `claude`, `codex`, or `pi`\nto select one client. The command previews hook changes and asks before applying\nthem. Use `--channel=next` for a published candidate.\n\nIf review is not working, start with `hapsland doctor`: it diagnoses registered\nclients without changing files. See [installation workflows](https://github.com/dearlordylord/hapsland/blob/master/docs/installation-workflows.md)\nfor local builds, updates, recovery, and removal, or the\n[Claude](https://github.com/dearlordylord/hapsland/blob/master/docs/claude-installation.md) and [Codex](https://github.com/dearlordylord/hapsland/blob/master/docs/codex-installation.md)\nguides for exact host limits and automation.\n\nConfigure file selection, related-code access, privacy exclusions, and per-rule application through personal and project JSONC settings. With no file settings, all otherwise eligible files are selected; user exclusions can turn review off.\n\nA small project configuration:\n\n```\n{\n  \"version\": 1,\n  \"includes\": [\n    \"src/**\"\n  ]\n}\n```\n\nSee the [complete configuration guide](https://github.com/dearlordylord/hapsland/blob/master/docs/configuration.md) for fields, precedence, rule selection, and when saved changes apply.\n\n| Language | Reviewed code | Main limits | \n|---|---|---|\n| TypeScript ( `.ts` ,`.tsx` ,`.mts` ,`.cts` ) | Interfaces, type aliases, and named functions, with related local types and imports, within configured limits | Unsupported syntax or unresolved evidence can prevent review. | \n| Rust ( `.rs` ) | Top-level structs, enums, and type aliases, with local type context across verified Cargo modules | Hapsland resolves explicit local `mod` /`use` bindings and aliases. External crates, re-exports, inline modules, functions, macros, and conditional compilation are not supported. Cargo metadata and supporting files must pass file selection. Attributes such as`derive` make evidence incomplete for the default rules. | \n| Bend ( `.bend` ) | Top-level `type` datatypes and constructor payloads, ordinary or erased datatype parameters, and literal quantity arguments. Related definitions come from the same file, explicit relative`.bend` alias imports, or the pinned Base`List` , within configured limits. | Functions, laws/proofs, dependent or computed types, and hub, bare, or absolute imports are unsupported. Constructors must occupy one line with two-space indentation. Literals inside datatype syntax remain unsupported; literals in unrelated bodies do not block extraction. | \n\nRust cross-file context requires a selected `Cargo.toml` with an explicit\n2018, 2021, or 2024 edition and accepted library/binary targets. Workspace-inherited\neditions, custom build targets, and test/example/bench target tables are outside\nthis profile. Module paths must be unambiguous; excluded supporting files stay unread.\n\nLanguage support applies to source review; it does not select an agent runtime.\nIf an edit lacks the evidence a rule needs, Hapsland skips that rule. Silence\nis not confirmation that the code passed review. See the\n[review contract](https://github.com/dearlordylord/hapsland/blob/master/docs/type-function-review-proposal.md#branch-contracts) for\nthe syntax limits and [session status](https://github.com/dearlordylord/hapsland/blob/master/docs/status.md) to inspect\nreview activity.\n\nUse the [documentation guide](https://github.com/dearlordylord/hapsland/blob/master/docs/README.md) to find installation, configuration,\nrule authoring, diagnostics, architecture, and [comparisons with existing solutions](https://github.com/dearlordylord/hapsland/blob/master/docs/review-studies.md).\n\nSee [Contributing](https://github.com/dearlordylord/hapsland/blob/master/CONTRIBUTING.md) for source setup, code style, checks, and\nlocal development workflows. The [repository map](https://github.com/dearlordylord/hapsland/blob/master/docs/agents/navigation.md)\nlocates contracts, implementation owners, tests, website assets, and research.", "url": "https://wpnews.pro/news/realtime-semantic-advice-on-coding-standards-for-the-agents", "canonical_source": "https://github.com/dearlordylord/hapsland", "published_at": "2026-10-09 15:21:27+00:00", "updated_at": "2026-10-09 15:24:47.398898+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "ai-tools", "ai-safety"], "entities": ["Hapsland", "Codex CLI", "Claude Code", "Jev", "Cloudflare", "Clef", "Clef-flash", "typesafe.ai"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/realtime-semantic-advice-on-coding-standards-for-the-agents", "markdown": "https://wpnews.pro/news/realtime-semantic-advice-on-coding-standards-for-the-agents.md", "text": "https://wpnews.pro/news/realtime-semantic-advice-on-coding-standards-for-the-agents.txt", "jsonld": "https://wpnews.pro/news/realtime-semantic-advice-on-coding-standards-for-the-agents.jsonld"}}