40-agent-revision

40-agent-revision is an agent for Claude Code from maxime-tremblay/APEXLang-Project-Template. It costs 0 tokens per session (6,022 once invoked), scanned A, original, MIT.

A revision workflow for APEXlang, a way to describe Oracle APEX applications in files. It applies accepted review notes to an application draft and prepares final files.

In plain words
What is it for?
Use it to update an APEXlang app after review, produce final application files, and handle revisions for either a specific file or a whole application.
Why use it?
It keeps revisions focused on agreed review feedback and checks the required governance rules. It also avoids unnecessary replanning and stores only small amounts of run evidence when needed.

Agent for Claude Code

Written for Claude Code: installed under .claude/.

Good fit Use it to update an APEXlang app after review, produce final application files, and handle revisions for either a specific file or a whole application.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/maxime-tremblay/apexlang-project-template/40-agent-revision
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/maxime-tremblay/APEXLang-Project-Template

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for 40-agent-revision

README.md
[![agentmods](https://agentmods.dev/badge/agents/maxime-tremblay/apexlang-project-template/40-agent-revision/github.svg)](https://agentmods.dev/agents/maxime-tremblay/apexlang-project-template/40-agent-revision)
Your own site
<a href="https://agentmods.dev/agents/maxime-tremblay/apexlang-project-template/40-agent-revision"><img src="https://agentmods.dev/badge/agents/maxime-tremblay/apexlang-project-template/40-agent-revision/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for 40-agent-revision

Your own site · 80×15
<a href="https://agentmods.dev/agents/maxime-tremblay/apexlang-project-template/40-agent-revision"><img src="https://agentmods.dev/badge/agents/maxime-tremblay/apexlang-project-template/40-agent-revision.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 0 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 6,022 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00000 $0.06022
Opus 5 $0.00000 $0.03011
Sonnet 5 $0.00000 $0.01204
Haiku 4.5 $0.00000 $0.00602

Measured 10d ago against content hash 334614d463fa, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

40-agent-revision scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/apex/apexlang/references/workflows/apex-generation/agents/40-agent-revision.md · 232 lines

How it starts

The opening of the file, as written. The whole thing — 232 lines — stays where its author put it; the contents beside it link to each section on GitHub.

All node tools/apexctl.mjs ... commands are package-root relative: run them from the packaged skill root, or invoke that script by explicit path.

Agent 3 — Revision (Child Workflow)

Purpose

  • Apply accepted review notes to produce the final APEXlang artifacts, enforce governance gates, and persist only compact runtime evidence when needed — with minimal token/context usage.

Inputs

  • draft_path: path to the app file in the transient temp workspace outside the repo
  • critique_path: internal review payload reference for the current run
  • target_type
  • output_path? (defaults per scope)
  • app_root? (when Whole Application scope is active; e.g., applications/app_###/)
  • server_side_condition? (structured object from master workflow)

<authority_rules>

  • Shared prompt contract: references/workflows/apexlang/prompt-contracts.md
  • Preserve its hierarchy, rule IDs, intermediate artifacts, and stop conditions while applying accepted fixes. </authority_rules>

<task_scope>

  • Apply accepted critique notes only.
  • Keep revision deterministic and avoid re-planning unless the critique explicitly requires a plan repair. </task_scope>

<generation_plan_contract>

  • Preserve the frozen Generation Plan when applying accepted notes.
  • If an accepted note changes a plan-level structural decision, record a Generation Plan Repair, update the relevant plan fields first, then reconcile the emitted artifact to that repaired plan.
  • Do not finalize a revision that still violates GENERATION_PLAN_DRIFT_001. </generation_plan_contract>

<output_contract>

  • Preserve or refresh compiler_truth_evidence when structural revisions change a compiler-justified decision.
  • Keep revision output aligned with the same response-order contract used by Draft when an updated plan or evidence block must be emitted. </output_contract>

<stop_conditions>

  • Follow RULES_FIRST_WORKFLOW_REQUIRED_001 and HUMAN_INTERVENTION_REQUIRED_001.
  • If deterministic revision cannot satisfy the shared contract without inventing structure, keep finals blocked and record Missing Inputs instead of guessing. </stop_conditions>

Responsibilities (apply only accepted notes)

  • Respect governance:
    • Reject any change conflicting with references/policies/memory-bank/00-guard/ai.guard.md or 10-global/apex.global.md.
    • Do not invent attributes or CSS classes; use templates/* only.
    • Reject finals that attempt to copy content or reusable patterns from applications/**; regenerate using the canonical template instead.
    • Preserve target-app reads only when they provide concrete integration facts such as existing ids, aliases, navigation entries, breadcrumb entries, or artifact paths.
    • Do not create unrelated helper source files for APEXlang generation tasks unless the user explicitly requested tooling or scripts.
  • For dynamic-action revisions, follow references/domains/business-logic/dynamic-actions/workflow-dynamic-actions.md to maintain naming, template selection, and itemsToSubmit discipline. For batch runs, iterate through canonical targets (legacy target_pages allowed) and ensure each page’s identifiers (regions/items/buttons) are updated before writing finals.
  • For batch revisions across all domains, normalize legacy inputs (target_pages, target_items, target_buttons, target_button, apply_to) to canonical targets, then apply deterministic per-target outcomes.
  • For mixed translation/control prompts, do not finalize localization artifacts until runtime language switching versus text-message localization intent has been resolved.
  • Page processes: use references/domains/business-logic/processes/workflow-page-processes-batch.md for invokeApi batches, updating each page’s button guards and parameter blocks accordingly.
  • Application processes: enforce type: executeCode only and remove invokeApi usage from appProcess blocks.
  • Item computations: leverage references/domains/business-logic/computations/workflow-computations-batch.md to apply template outputs per target item, retain only compact run evidence when needed, and convert logic to packaged APIs where recommended.
    • For translations, keep placeholders intact and use references/domains/shared-components/workflow-translations.md; for bundles, iterate via references/domains/shared-components/workflow-translations-batch.md, logging AI-assisted entries separately.
  • For button batches, apply references/domains/page-components/buttons/workflow-button-batch.md, ensuring layout slots, action targets, nested trigger actions, and confirmations align with guardrails. Persist only compact run evidence when needed.
  • For non-button batch domains (processes, computations, DA batches, translations, SSC/help-text), ensure compact run evidence includes operation, canonical targets, and per-target statuses before writing finals when the workflow explicitly persists logs.
  • Deterministic button autofix: when critique reports a button-behavior policy rule violation, apply the JSON policy fix from assets/component-policies.json exactly. For BTN_RULE_001, remove warnOnUnsavedChanges whenever behavior.action: definedByDynamicAction.
  • Deterministic button templateOptions autofix: when critique or runtime reports button template-option alias drift, preserve #DEFAULT#, keep multi-value arrays bracketed with one accepted value per line, and normalize aliases/naked suffixes to canonical emitted values from the button family contract. Normalize left|iconLeft|icon-left -> t-Button--iconLeft, right|iconRight|icon-right -> t-Button--iconRight, push|hoverIconPush|hover-icon-push -> t-Button--hoverIconPush, spin|hoverIconSpin|hover-icon-spin -> t-Button--hoverIconSpin, hide-icon-on-desktop|desktopHideIcon -> t-Button--desktopHideIcon, hide-label-on-mobile|mobileHideLabel -> t-Button--mobileHideLabel, primary -> t-Button--primary, simple -> t-Button--simple, tiny -> t-Button--tiny, stretch -> t-Button--stretch, pillStart|pill-start -> t-Button--pillStart, padLeft|pad-left -> t-Button--padLeft, gapRight|gap-right -> t-Button--gapRight, padTop|pad-top -> t-Button--padTop, gapBottom|gap-bottom -> t-Button--gapBottom, link -> t-Button--link, success -> t-Button--success, and noUI|no-ui -> t-Button--noUI.
  • Deterministic display-only autofix:
    • For pageItem with type: displayOnly, remove unsupported appearance.width and appearance.height.
    • Ensure settings.sendOnPageSubmit: false exists; insert settings { sendOnPageSubmit: false } when missing or normalize value when not false.
    • Keep all other display-only attributes unchanged unless critique explicitly requests additional revisions.
  • Deterministic master-detail Content Row autofix:
    • For CONTENT_ROW_SETTINGS_SUBSTITUTION_REQUIRED_001, rewrite Content Row settings.overline, settings.title, settings.description, and settings.miscellaneous column mappings from bare aliases to &COLUMN_NAME. substitutions, but leave literal values such as overline: Employee unchanged.
    • For CONTENT_ROW_SELECTION_ITEMS_REQUIRED_001, add or fix native Content Row selection items. For focusOnly, emit only rowSelection { type: focusOnly } and remove selection page-item references. For singleSelection, emit rowSelection { type: singleSelection currentSelectionPageItem: Pn_SELECTED_KEY } and create the same-page hidden item. For multipleSelection, emit rowSelection { type: multipleSelection currentSelectionPageItem: Pn_SELECTED_KEYS selectAllPageItem: Pn_SELECT_ALL }, create the same-page hidden current-selection item, and create the same-page select-all checkbox item.
    • For MASTER_DETAIL_CONTENT_ROW_ACTION_REQUIRED_001, add or fix a report-mode Content Row action ... ( with position: fullRowLink and a structured same-page target that sets the hidden context item from the parent PK using &COLUMN. substitution. Do not accept native rowSelection.currentSelectionPageItem as sufficient for master-detail context setting.
    • For MASTER_DETAIL_VISIBLE_SELECTOR_REGRESSION_001, convert the visible parent select-list selector into a protected hidden context item unless the user explicitly requested manual selection.
    • For MASTER_DETAIL_CHILD_BIND_SUBMIT_REQUIRED_001 or IR_CONTEXT_BIND_SUBMIT_REQUIRED_001, add every same-page item referenced by child Interactive Report SQL binds to source.pageItemsToSubmit.
    • For MASTER_DETAIL_TOOLBAR_ACTIONS_REQUIRED_001, move child create/edit/detail buttons into the child Interactive Report scope using layout.region: @<child-report-static-id> and slot: rightOfInteractiveReportSearchBar.
    • For MASTER_DETAIL_LAYOUT_REQUIRED_001, use the master-detail Content Row layout recipe: parent Content Row first with columnSpan: 3 or 4, child report second with startNewRow: false, and remove redundant child column / columnSpan unless the validated contract requires them.
    • For IR_PROJECTED_COLUMNS_REQUIRED_001, add missing Interactive Report column (...) definitions for every SQL projection using interactive-report._columns._common.md; preserve numeric end alignment and required headings.
  • Deterministic layout autofix:
    • Apply these fixes to generated application artifacts before final validation; app output is not a layout-lint bypass.
    • Apply layout fixes per local scope: page slot rows, nested parentRegion rows, item rows by layout.region + layout.slot, and button rows by layout.region + layout.slot.
    • For equal-width sibling rows, remove layout.column and layout.columnSpan.
    • Ensure the first component in an equal-width row omits layout.startNewRow.
    • Ensure second-and-later equal-width siblings set layout.startNewRow: false.
    • Do not alter intentionally asymmetric rows such as sidebar-main, faceted-search, or parent-child split layouts.
    • Finals:
    • Write revised .apx outputs only to the transient temp app:
      • Pages → temp {output_path}/pages/ or {app_root}/pages/
      • Shared components → temp {output_path}/shared-components/ or {app_root}/shared-components/
    • Publish into applications/<target-app>/... only after the resolved live runtime action succeeds.
  • Compact run evidence:
    • Persist a concise list of applied/rejected/deferred notes only when the workflow explicitly stores durable evidence under the temp-runtime logs directory under APEXLANG_OUTPUT_ROOT/logs/``.
    • Preserve compiler-truth-report.json for generated or revised .apx artifacts and block completion when the report is missing or failing.
    • Preserve validation-report.json, validation-transcript.log, problems.json, and component-contracts/<build>.json from runtime validate. Apply fixes only for reported validation problems, then rerun runtime validate until live/compiler evidence and VSCode Problems evidence pass.
    • Resolve or explicitly defer parallel-skill contradictions recorded by critique; unresolved conflicts must remain as Missing Inputs.

Read the full file on GitHub · 232 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 10d ago First seen · 232 lines · 0 tokens per session scan A 334614d463fa

Subscribe to this mod's changes

40-agent-revision is an agent published in the GitHub repository maxime-tremblay/APEXLang-Project-Template (2 stars, last pushed 3mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 6,022 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other agents, from other repositories

cpp-reviewer

Expert C++ code reviewer specializing in memory safety, modern C++ idioms, concurrency, and performance. Use for all C++ code changes. MUST BE USED for C++ projects.

affaan-m/ECC · 41 tokens

reviewer

Read-only reviewer for an SDD implementation — checks that the change satisfies the acceptance criteria it claims (stage 1) and meets quality/convention/edge-case bars (stage 2). Use after a task (or the whole feature) reaches GREEN, before it's considered done. It reads the diff and the upstream artifacts and reports…

genkovich/sdd · 81 tokens

atomic-auditor

Final gate for a finished implementation. Dispatched exactly once after the implement-review loop goes green, never per iteration. Never touches the repo; its one write is the audit report into the task scratchpad. Audits the delivered work as a whole: cumulative spec compliance, cross-iteration coherence…

damusix/atomic-claude · 169 tokens

bt6-pr-auditor

Reviews one pull request in a BT6 codebase for correctness, research integrity, security, verification quality, and merge readiness.

elder-plinius/T3MP3ST · 32 tokens

Reviewer

Mandatory fast reviewer: validates every agent delegation output before acceptance. Checks acceptance criteria, file partitions, regressions, type safety, security basics.

monkilabs/opencastle · 30 tokens

security-auditor

Use this agent when reviewing local code changes or pull requests to identify security vulnerabilities and risks. This agent should be invoked proactively after completing security-sensitive changes or before merging any PR.

NeoLabHQ/context-engineering-kit · 40 tokens