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.
git clone --depth 1 https://github.com/maxime-tremblay/APEXLang-Project-TemplateWrote 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.
[](https://agentmods.dev/agents/maxime-tremblay/apexlang-project-template/30-agent-critique)<a href="https://agentmods.dev/agents/maxime-tremblay/apexlang-project-template/30-agent-critique"><img src="https://agentmods.dev/badge/agents/maxime-tremblay/apexlang-project-template/30-agent-critique/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.
<a href="https://agentmods.dev/agents/maxime-tremblay/apexlang-project-template/30-agent-critique"><img src="https://agentmods.dev/badge/agents/maxime-tremblay/apexlang-project-template/30-agent-critique.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.11973 |
| Opus 5 | $0.00000 | $0.05986 |
| Sonnet 5 | $0.00000 | $0.02395 |
| Haiku 4.5 | $0.00000 | $0.01197 |
Grade A, and why
30-agent-critique 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 9d 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.
How it starts
The opening of the file, as written. The whole thing — 442 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 2 — Critique (Child Workflow)
Purpose
- Produce an actionable critique of the Agent 1 draft with citations to loaded rules, identify Missing Inputs, enforce governance gates, and emit a Confidence Score — all with minimal token/context usage.
Inputs
- draft_path: path to the app file in the transient temp workspace outside the repo
- target_type
- data_contract
- styling? (none by default)
- 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 - Enforce its hierarchy, rule IDs, intermediate artifacts, and stop conditions. </authority_rules>
<task_scope>
- Validate the draft, enforce governance gates, and classify revision work without widening scope. </task_scope>
<allowed_sources>
- Always: references/policies/memory-bank/00-guard/ai.guard.md, 10-global/apex.global.md
- Conditional: 20-data/30-pages/40-components rules only as needed
- Styling (50-*) only when styling ≠ none </allowed_sources>
<generation_plan_contract>
- Hard-fail
GENERATION_PLAN_REQUIRED_001when non-trivial structural generation produced noGeneration Plan. - Hard-fail
GENERATION_PLAN_MALFORMED_001when aGeneration Planomits required fields from the shared contract. - Hard-fail
GENERATION_PLAN_DRIFT_001when emitted artifact structure, source mode, or navigation decisions drift from the frozenGeneration Plan. </generation_plan_contract>
<output_contract>
- Use named rule IDs in findings whenever the contract defines one.
- Treat validator success as secondary evidence only; critique must still enforce prompt contracts. </output_contract>
<stop_conditions>
- Hard-fail
RULES_FIRST_WORKFLOW_REQUIRED_001when the draft guesses or infers a high-impact structural decision before exhausting the posted rules, workflow, templates, or compiler-backed truth. - Hard-fail
HUMAN_INTERVENTION_REQUIRED_001when the draft should have stopped with Missing Inputs or explicit human intervention instead of inventing a high-impact structural decision. - Hard-fail
STOP_CONDITION_BYPASSED_001when the draft uses fallback inference in a case where the shared contract requires Missing Inputs. </stop_conditions>
Scope and minimal rule loading
Critique checklist (actionable, token-thin)
- Cite: 10-global/apex.global.md; relevant 20/30/40 rules present in the current run.
- Prerequisite metadata startup gate:
- Hard-fail
DB_MODE_PROMPT_REQUIRED_001if run evidence does not show prerequisite metadata source was resolved first (prereq_source: schema_doc,prereq_source: saved_connection, orprereq_source: user_prompt) before generation.
- Hard-fail
- Pre-generation DB verification gate:
- Hard-fail
DB_VERIFY_BEFORE_GENERATION_001when DB-backed draft artifacts were produced before metadata verification evidence from either the selected schema dictionary or live DB metadata.
- Hard-fail
- Compiler-truth evidence gate:
- Hard-fail
COMPILER_TRUTH_EVIDENCE_REQUIRED_001when a draft introduces a non-exact-match structural edit without aCompiler Truth Evidencesection in the Draft phase response or parallel contract payload. - Hard-fail
COMPILER_TRUTH_EVIDENCE_REQUIRED_001when the evidence does not cover the affected component family or structure class. - Hard-fail
COMPILER_TRUTH_EVIDENCE_MALFORMED_001when aCompiler Truth Evidenceentry omits the command, checked scope, conclusion, or emitted decision. - Hard-fail
COMPILER_TRUTH_EVIDENCE_MISMATCH_001when the recorded compiler-truth conclusion does not support the emitted DSL shape. - Do not treat local validator or package-validator success as a substitute for compiler-truth evidence.
- Hard-fail
- Multiline structural syntax gate:
- Hard-fail
DSL_MULTILINE_STRUCTURE_REQUIRED_001when a property-object is compressed onto one line, for examplefoo: { bar: 1 }. - Hard-fail
DSL_MULTILINE_STRUCTURE_REQUIRED_001when multiple sibling property assignments are emitted on the same structural line outside fenced code blocks.
- Hard-fail
- Report DB metadata gate (Classic/Interactive with localDatabase):
- Hard-fail
DB_METADATA_REQUIRED_REPORT_001when report SQL is drafted without metadata verification evidence for source object, selected columns, andORDER BYcolumns. - Hard-fail
DB_METADATA_REQUIRED_REPORT_001when SQL references unverified columns or unverified sort columns. - Require Missing Inputs halt when metadata cannot be verified from the provided
db_connection_name.
- Hard-fail
- NL2IR metadata precedence gate:
- Hard-fail when an Interactive Report with
genAI.naturalLanguageSupport: truedoes not show metadata evidence for an annotation scan of the target object/column before falling back to comments. - Hard-fail when
genAI.reportContextuses a table/view comment while a non-emptyreport_contextordescriptionannotation exists. - Hard-fail when
column.genAI.columnContextuses a column comment while a non-emptycolumn_context,ai_context, ordescriptionannotation exists. - Hard-fail when omission of report or column context is justified only by probing canonical keys without scanning descriptive annotations.
- Hard-fail when metadata evidence relies on invalid annotation-view columns or otherwise shows the wrong dictionary shape was queried.
- Hard-fail when report or column context is inferred from names, headings, sample data, or other non-metadata sources.
- Hard-fail when an Interactive Report with
- Report SQL/PLSQL HTML literal gate:
- Hard-fail
REPORT_SQL_HTML_LITERAL_FORBIDDEN_001when report SQL/PLSQL source blocks contain HTML-tag literals for presentation rendering (for example<span,<div,<a, inline style markup). - Require revision to keep SQL/PLSQL data-only and move presentation markup to
columnFormatting.htmlExpressionperreferences/policies/memory-bank/30-pages/apex.report-column-rendering.md. - Hard-fail when top-level report-column
htmlExpressionis emitted formmdVersion 26.1.053. - Hard-fail when
columnFormatting.htmlExpressionis paired withtype: richText.
- Hard-fail
- Server-side execution policy (scope split):
- Page process: flag any page process using type: executeCode whose plsqlCode appears to call a package (pattern match: ., e.g., pkg_api.proc or PKG.FUNC) unless it is a justified thin wrapper for a page-coupled loader or branch-gated flow that stays small, uses named notation, and performs direct page-item assignment only.
- For non-compliant page-process package calls, require conversion to type: invokeApi with invoke { package, procedureOrFunction } and explicit parameter blocks (with direction and value mapping) per 00-guard/ai.guard.md and 20-data/apex.logic.md.
- App process: flag any
appProcessthat usestype: invokeApi; require conversion totype: executeCode.
- Report-region link policy:
- Hard-fail when Classic Report, Interactive Report, or Interactive Grid navigation is drafted without evidence that the user chose one of: same application page, another application page, URL redirect.
- Hard-fail when same-application report navigation uses
type: url,f?p=..., or SQL-computed URL columns even though the DSL supports a declarative page target and the user did not explicitly choose URL mode. - Hard-fail
redirectThisAppbuttons that use scalartarget: f?p=...or baretarget { ... }; require declarativetarget: { page, items, clearCache, action, request }syntax. - Master-detail Content Row policy:
- Hard-fail
CONTENT_ROW_SETTINGS_SUBSTITUTION_REQUIRED_001when Content Row display settings such asoverline,title,description, ormiscellaneousreference query columns as bare aliases instead of&COLUMN_NAME.substitutions; allow literal values such asoverline: Employee. - Hard-fail
CONTENT_ROW_SELECTION_ITEMS_REQUIRED_001when native Content Row row selection is incomplete:focusOnlymust not include page-item references,singleSelectionmust includecurrentSelectionPageItembacked by a same-page hidden item, andmultipleSelectionmust include bothcurrentSelectionPageItembacked by a hidden item andselectAllPageItembacked by a same-page checkbox item. - Hard-fail
MASTER_DETAIL_CONTENT_ROW_ACTION_REQUIRED_001when a parent Content Row filters or drives a child region through a same-page context item but lacks afullRowLinkaction that sets that hidden context item from the parent PK. NativerowSelection.currentSelectionPageItemdoes not satisfy master-detail drill-down/context setting. - Hard-fail
MASTER_DETAIL_VISIBLE_SELECTOR_REGRESSION_001when the primary parent selector is emitted as a visible select list while a parent Content Row exists or is clearly required by the page intent. - Hard-fail
MASTER_DETAIL_CHILD_BIND_SUBMIT_REQUIRED_001when a child Interactive Report SQL references a same-page parent context item but omits that item fromsource.pageItemsToSubmit. - Hard-fail
MASTER_DETAIL_TOOLBAR_ACTIONS_REQUIRED_001when create/edit/detail buttons for a child Interactive Report are emitted as free-floating body-grid buttons instead of being scoped to the child report toolbar slot. - Hard-fail
MASTER_DETAIL_LAYOUT_REQUIRED_001when the parent Content Row and child report are stacked full-width or over-coordinate the child report instead of using the narrow-parent plus broad-child same-row recipe. - PL/SQL named notation policy: In all PL/SQL text blocks (plsqlCode, plsqlFunctionBody, plsqlExpression, fenced ```plsql), flag calls with arguments that (a) lack any "=>" (positional only) or (b) mix named and positional notation. Parameterless calls "()" are allowed. Cite 00-guard/ai.guard.md, 10-global/apex.global.md, and 20-data/apex.logic.md.
- Enforce
PLSQL_INLINE_BLOCK_001from00-guard/ai.guard.md: hard-fail when any inline PL/SQL body exceeds 4000 raw characters; require package extraction (app_process_apidefault) and declarative process usage (invokeApifor page process,executeCodefor appProcess). - Enforce
SQL_INLINE_BLOCK_001from00-guard/ai.guard.mdand20-data/apex.sql.md: hard-fail when any inline SQL body exceeds 4000 raw characters; require extraction to a secure view and page/reference rewrite. - Enforce
SQL_PLSQL_LOB_COMPARISON_KEY_FORBIDDEN_001from20-data/apex.sql.md: hard-fail any SQL/PLSQL-owned query that places rawBLOB,CLOB,NCLOB, orBFILEexpressions inGROUP BY,ORDER BY,SELECT DISTINCT, set operations, analyticPARTITION BY/ORDER BY, equi-joins, orWHERE/HAVINGcomparison predicates. Cite the ORA-22848 failure and require scalar-key remediation or scalar inner query plus outer LOB projection. - For
aiAgenttools that emitsettings.sqlQuery, hard-failSQL_INLINE_BLOCK_001when the raw SQL body exceeds 4000 characters and require extraction of prompt-independent logic into secure view(s) plus a short prompt-aware wrapper query. - Enforce
DB_CONN_REQUIRED_001from00-guard/ai.guard.md: hard-fail any DB object creation/update task whendb_connection_nameis not explicitly provided; record Missing Inputs and stop DB-object output. - Validate Draft basics:
- Canonical sources: fail if the draft is justified from
applications/**examples or exports; all seed content must come from templates and memory-bank guidance, and any target-app reads must be integration-only.- Hard-fail
COMPILER_TRUTH_EVIDENCE_REQUIRED_001when generated or revised.apxartifacts lackcompiler-truth-report.jsonevidence fromnode tools/apexctl.mjs apexlang compiler-truth audit --app-path <temp_app_path> --verify-component-attributes. - Hard-fail
COMPILER_TRUTH_AUDIT_FAILED_001when the compiler-truth report status is notpass; cite the report issue codes before any publish/runtime handoff. - Hard-fail
VALIDATION_DUAL_SOURCE_REQUIRED_001when validation handoff lacksproblems.json, target-build compiler-driven evidence, or VSCode Problems diagnostics for generated or revised.apxfiles. Compiler truth alone and VSCode Problems alone are both insufficient. - Require
problems.jsonas the compact validation review surface; do not accept terminal transcript spelunking or broad skill-doc search as a substitute. - APEXlang-only; SQL in triple backticks.
- Uses templates/*; no invented attributes or UT classes.
- Declarative first; heavy logic deferred to DB packages/views.
- DML guarded by button/process.
- Hard-fail
- Dynamic Actions:
- Confirm
dynamicActionnames followDA_<purpose>and reference existing components (items, regions, buttons). - Verify action sequences align with canonical templates under
business-logic/dynamic-actions/; flag missing attributes (itemsToSubmit, selectionType details, plugin static IDs). - Hard-fail any
dynamicAction.when.eventoutside the approved allowlist intemplates/business-logic/dynamic-actions/dynamic-actions._common.md; specifically reject aliases such asdialogClosed. - For dialog refresh flows, require
apexafterclosedialogfor successful close behavior andapexafterclosecanceldialogonly for explicit cancel-close behavior. - For
executeServerSideCode, ensure itemsToSubmit are scoped and note mandatory migration toinvokeApi; cite 20-data/apex.logic.md. - Ensure debounce/throttle execution control uses
execution.type+execution.time(ms), and validateexecution.immediatewhen provided.
- Confirm
- Reference Tier 1 workflow
references/domains/business-logic/dynamic-actions/workflow-dynamic-actions.mdfor single-page cases,references/domains/business-logic/dynamic-actions/workflow-dynamic-actions-batch.mdfor UI batches, andreferences/domains/business-logic/dynamic-actions/workflow-dynamic-actions-plsql-batch.mdfor invokeApi batches; confirm every page listed has required identifiers and note Missing Inputs per page when absent. - Validation reference gate (hard fail):
- For validation
error { associatedItem: ... }, fail when the item reference is emitted without alias syntax.
- For validation
- Require
associatedItem: @P<n>_<item>and verify the referenced page item exists on the same page. - For item computations, ensure
computation-plsql-batchinputs map to the correct computation template, execution point, and sequence. Verify PL/SQL guardrails (section 9) and halt if multi-value SQL lacks deterministic ordering. - Multi-value item computation gate:
- For computations targeting known multi-value items (
checkboxGroup,selectMany,shuttle), prefertype: sqlQueryMultipleValueswith one returned row per selected value. - Flag
listaggas Required Revision unless item-level multiple-values storage evidence explicitly requires pre-aggregated output. - Flag
assignValueas Required Revision when the computation targets exactly one multi-value item and no additional target items are being populated.
- For computations targeting known multi-value items (
- Batch contract gate (all batch target types):
- Validate canonical
operation+targetsare resolved before critique decisions. - When legacy keys are supplied (
target_pages,target_items,target_buttons,target_button,apply_to), require explicit normalization evidence in draft summaries/log payloads. - Fail when per-target outcomes are missing for batch runs (expected statuses such as
applied,blocked,not_found,ambiguouswhere relevant).
- Validate canonical
- Page processes:
- For invokeApi batches, ensure each generated process references the consolidated package, matches the button guard, declares parameters, and avoids
executeCode. Missing identifiers must be recorded per page.
- For invokeApi batches, ensure each generated process references the consolidated package, matches the button guard, declares parameters, and avoids
- Translations:
- If a translation/localization prompt also contained an explicit page-control request such as
button,menu, orselector, fail when the draft skipped the required runtime-switch versus localization clarification. - Ensure placeholders and HTML tokens are preserved in every localized string.
- Validate language codes exist in
assets/domains/shared-components/translations/languages.json. - Reference Tier 1 translation workflows (
references/domains/shared-components/workflow-translations.md,references/domains/shared-components/workflow-translations-batch.md) to confirm required inputs (message keys, languages, bundle completeness). - Flag Missing Inputs per key/language when text is absent, unless auto-translate was requested.
- For app/page localization runs, hard-fail
missing_conversionwhen user-facing literals remain in translated scope without corresponding shared text-message keys. - For app/page localization runs, hard-fail
invalid_consumptionwhen localized component attributes use direct text instead of text-message substitution references. - For app/page localization runs, hard-fail
missing_globalization_setupwhen the artifact emits translation message entries but does not enabletranslationMethod: textMessagesfor the application when localization is intended. - Hard-fail
non_apexlang_outputwhen the run emits unrelated helper source files without explicit user direction. - Require evidence in draft summaries/logs of the localization conversion path: keys created or reused, component references rewired, and per-target outcomes where relevant.
- If a translation/localization prompt also contained an explicit page-control request such as
- Artifact boundary gate (hard fail):
- For APEXlang generation tasks, fail
non_apexlang_outputwhen the draft or final outputs include unrelated helper source files (for example.py) that were not explicitly requested by the user. - Hard-fail when leaked template-family docs appear in the transient app root or published output.
- For APEXlang generation tasks, fail
- Component policy gate (all component types):
- Deterministic policy gate: load
assets/component-policies.jsonand enforce everyseverity: errorrule directly from JSON (no inferred exceptions). - Apply JSON-driven checks to all rule scopes (for example page, button, item, region), not buttons only.
- Include policy rule IDs in findings (for example
BTN_RULE_001,PAGE_RULE_001) so revision can auto-fix deterministically.
- Deterministic policy gate: load
- Page item guardrails (display-only, deterministic):
- For
pageItemwithtype: displayOnly, fail whenappearance.widthorappearance.heightis emitted. - For
pageItemwithtype: displayOnly, fail whensettings.sendOnPageSubmitis missing or notfalse. - Emit findings as
DSL_RULE_PROP/DSL_RULE_REQUIRED/DSL_RULE_VALUEand prefer compiler-truth evidence plus the owning family template. Citeassets/component-attributes.jsononly as fallback/internal validator context when stronger runtime-backed proof is unavailable.
- For
- DSL schema gate (hard fail when available):
- Treat
assets/component-attributes.jsonas fallback/internal validator context, not the primary authority for cross-family authoring decisions. - If draft or cited template emits an unsupported block/property, fail with
DSL_RULE_*/DSL_TEMPLATE_*finding and mark the template as defective rather than trusting it. - Hard-fail invalid enum values when the contract defines an allowed set (for example pagination types or axis names).
- Hard-fail region-type-specific block/property misuse for covered components (for example gauge/chart value formatting blocks or report-only column source metadata in unsupported contexts).
- Treat
- Shared LOV vocabulary gate (hard fail):
- For any item
lov {}block that references a shared LOV alias, fail when the draft emitstype: sharedLovorsharedLov: @.... - Require canonical shared LOV syntax
type: sharedComponentpluslov: @alias. - When reusable family template prose conflicts with concrete page examples or validator-accepted DSL for shared LOVs, mark the template as defective and require revision before runtime completion.
- For any item
- Page layout gate (hard fail for page-scoped artifacts):
- Cite
references/policies/memory-bank/30-pages/apex.layout.mdfor layout-scope rules. - Apply this gate to generated
applications/**artifacts as well as draft/template outputs; final app paths are not exempt. - Evaluate layout locally per scope: page slot rows, nested
parentRegionrows, item rows bylayout.region + layout.slot, and button rows bylayout.region + layout.slot. - Flag equal-width sibling rows that use explicit
layout.column/layout.columnSpan. - Flag second-or-later equal-width siblings that omit
layout.startNewRow: false. - Flag first components in scoped rows that incorrectly set
layout.startNewRow: false. - Flag rows whose explicit
columnSpantotal exceeds 12 within their local scope. - Flag rows that mix implicit-flow and explicit-grid placement without an intentional asymmetric pattern.
- Do not flag the anchored-sibling asymmetric recipe as invalid mixed layout when the first sibling uses only
columnSpanand later siblings usecolumn. - For true shell compositions such as sidebar + main content, prefer page-template slot layouts such as
leftColumn+bodybefore accepting a body-grid implementation. - Allow explicit coordinates only for intentionally asymmetric layouts such as sidebar-main, faceted-search, or parent-child split pages.
- For master-detail Content Row pages, require a narrow parent region and a child region in the same row with
startNewRow: false; do not require redundant childcolumn/columnSpanunless a validated contract needs them.
- Cite
- Interactive Report projection gate:
- Hard-fail
IR_PROJECTED_COLUMNS_REQUIRED_001when an Interactive Report SQL projection lacks matchingcolumn (...)definitions before finals. - Hard-fail
IR_CONTEXT_BIND_SUBMIT_REQUIRED_001when Interactive Report SQL references same-page page-item binds butsource.pageItemsToSubmitomits them.
- Hard-fail
- Calendar region gate:
- For calendar regions, hard-fail missing
settings.pkColumnand require it to map to the source table primary key alias selected by the SQL. - For calendar regions, hard-fail unsupported settings such as
settings.showTime, hard-fail legacy aliases such assettings.displayCol,settings.startDateCol,settings.endDateCol, andsettings.pkCol, and hard-failsettings.additionalCalendarViewsvalues outsidelistandnavigation. - For calendar regions, hard-fail legacy string
f?p=usage insettings.createLinkorsettings.viewEditLink; require structured object syntax withpageand optionalitems. - For calendar regions, hard-fail
settings.createLinkorsettings.viewEditLinkobjects that omitpage. - For calendar regions, hard-fail invented target pages or invented target item mappings when the accepted inputs did not explicitly provide them; require a Missing Inputs halt instead of guessing values like
4orP4_ID. - For calendar regions, do not fail merely because
endDateColumnis absent when drag/drop is enabled; only fail drag/drop persistence when the emitted PL/SQL references:APEX$NEW_END_DATEwithout a matching end-date column contract. - For calendar regions, hard-fail split hidden-header template options when
t-Region--hideHeaderandjs-addHiddenHeadingRoleDescare emitted as separate values instead of one combined token. Citeassets/component-attributes.jsonandreferences/policies/memory-bank/30-pages/apex.calendar.md.
- For calendar regions, hard-fail missing
- Template-options value gate:
- Hard-fail concatenated template-option tokens such as
#DEFAULT#t-Report--stretch. - Hard-fail token-form drift when the owning catalog documents a different accepted emitted value, for example
style-ainstead oft-CardsRegion--styleAfor cards, or a CSS class string when the owning catalog expects a caller-facing token. - Allow documented full composite values only when emitted as one atomic entry.
- Hard-fail concatenated template-option tokens such as
- Chart region structure gate (hard fail):
- For any
regionwithtype: chart, inspectchart.type. - If
chart.typeis cartesian (line,bar,area,scatter,bubble,stock,range,pareto), fail if fewer than twoaxischildren are present. - Fail if required axis semantics are missing: one axis with
name: xand one withname: y. - Fail if any
axisblock omits a component identifier or omitsname. - If any series is assigned to a secondary Y axis, require an additional
axisblock withname: y2. - Fail stale singular tick block names such as
majorTickorminorTick; requiremajorTicks/minorTicks. - Fail
axis.value.format: text; textual axes must omit theformatproperty instead. - For SQL-backed chart series, fail when
columnMappingidentifiers do not match the SQL projection aliases exactly, including case. - For generated SQL-backed chart series using generic aliases, prefer uppercase
LABEL/VALUE; if semantic aliases are used, require exact-case mapping such asSTORE_LABEL->labelmapping key andTOTAL_VALUE->valuemapping key. - Cite
references/policies/memory-bank/30-pages/apex.chart-page.md,templates/region-components/chart/chart._common.md,templates/region-components/chart/chart._axis._common.md, andassets/component-attributes.jsonin findings. - Fail if any chart
seriesblock omitsexecution.sequence, including gauges and other non-cartesian charts where series ordering is still required by page standards.
- For any
- Classic report structure gate (hard fail when applicable):
- Validate classic report pagination against the allowed enum catalog:
rowRangesXToYNoPagination,rowRangesXToYOfZNoPagination,rowRangesXToYOfZWithPagination,setPaginationLinks,setPaginationSelectList,setPaginationSearchEngine,externalPaginationButtons,nextAndPreviousLinks, or omitted (null). - Flag unsupported classic report values such as
rowRangesXToY/rowRangesXToYOfZ(Interactive Report-only tokens). - Validate
pagination.displayPositiononly for Classic/IR and only whenpagination.typeis present; allowed values:bottomLeft,bottomRight,topLeft,topRight,topAndBottomLeft,topAndBottomRight. - For classic report columns, fail unsupported
sourceproperties when not allowed by the relevant contract/template. - For classic report columns using
columnFormatting.htmlExpression, fail whentype: richTextis emitted; keep plain text type implicit unless a non-default type is required. - Fail when classic report columns emit top-level
htmlExpression; requirecolumnFormatting.htmlExpression.
- Validate classic report pagination against the allowed enum catalog:
- Authorization alias gate (hard fail):
- Fail
security.authorizationSchemevalues that are emitted without alias reference syntax (@...) when used as component references.
- Fail
- ACL role declaration gate (hard fail):
- Hard-fail
ACL_ROLE_DECLARATION_REQUIRED_001when role-based authorization checks exist butshared-components/acl-roles.apxis missing. - Hard-fail
ACL_ROLE_DECLARATION_REQUIRED_001when any role referenced by authorization logic is absent from the roles artifact. - Hard-fail
ACL_ROLE_DECLARATION_REQUIRED_001when declared or referenced ACL role static IDs are not lowercase kebab-case.
- Hard-fail
- Item session state gate (hard fail):
- For page items, fail any
sessionState.storageoutsiderequest,session,user. - For page items detected as client-mutated after render by dynamic-action
setValue, dynamic-actionitemsToReturn, or explicit same-page JavaScript mutation patterns, requiresecurity.sessionStateProtection: unrestrictedplus comments rationale. - For hidden and ID-style page items that are not detected as client-mutated post-render state, require
security.sessionStateProtection: checksumRequiredSessionLevel. - Do not treat trigger-only references, client-side-condition inputs, or
itemsToSubmitreferences as sufficient reason to forceunrestricted. - For
selectList, failappearance.width.
- For page items, fail any
- Interactive grid structure gate (hard fail when applicable):
- Validate interactive grid pagination type is
scrollorpage. - Validate
pagination.showTotalCountas explicit boolean when present. - Flag any interactive grid
pagination.displayPositionusage. - Fail when interactive grid columns emit top-level
htmlExpression; requirecolumnFormatting.htmlExpression. - For Interactive Grid saved-report chart sort behavior, fail drafts that emit explicit
LABELas though it were a required non-default override when the packaged metadata marksLABELas the default. - For Interactive Grid saved-report aggregate guidance, fail drafts or notes that claim metadata-backed view/static-id parameters are ignored when the accepted contract keeps them structurally visible.
- Saved-report structure gate (hard fail when applicable):
- For any
regionwithtype: interactiveGrid, fail if it defines zerosavedReportchildren. - For any
regionwithtype: interactiveGrid, if asavedReportblock exists, fail if it contains nodisplayColumnchildren. - If
savedReport.singleRowView.displayedColumns: true, compare thedisplayColumn.columnaliases against declared Interactive Grid columns in the same region. - Fail if any declared Interactive Grid column other than
APEX$ROW_SELECTORis missing from the saved-report display list. - Fail if
APEX$ROW_ACTIONis declared on the region but omitted from the saved-report display list. - Fail if any
displayColumn.columnalias does not map to a declared Interactive Grid column in the same region. - Treat legacy
savedReportchildcolumn (orsingleRowView.displayedColssyntax as a required revision because it does not satisfy the canonical Interactive Grid template contract. - Cite
references/policies/memory-bank/30-pages/apex.interactive-grid-page.md,templates/region-components/interactive-grid/interactive-grid._common.md, andtemplates/region-components/interactive-grid/interactive-grid._saved-report._common.md.
- For any
- Validate interactive grid pagination type is
- Interactive report general structure gate (hard fail when applicable):
- Validate interactive report pagination against the allowed enum catalog:
rowRangesXToY,rowRangesXToYOfZ, or omitted (null). - Flag unsupported interactive report values such as
rowRangesXToYNoPagination,setPaginationLinks, or Classic-only pagination variants. - Fail when any interactive report column omits the
headingblock or omitsheading.heading, including hidden technical columns. Citereferences/policies/memory-bank/30-pages/apex.interactive-report.md,templates/region-components/interactive-report/interactive-report._columns._common.md, andassets/component-attributes.json. - Fail when interactive report columns emit
reportColumnQueryIdorderivedColumn; those attributes are Classic Report-only in this repository contract. - Fail when interactive report columns emit top-level
htmlExpression; requirecolumnFormatting.htmlExpression.
- Validate interactive report pagination against the allowed enum catalog:
- Classic report column contract gate (hard fail when applicable):
- Hard-fail
CLASSIC_REPORT_HIDDEN_COLUMN_HEADING_FORBIDDEN_001when a Classic Report column emitted astype: hiddenstill carriesheading {}. - Hard-fail when a delivered Classic Report SQL/table projection lacks a matching
column (...)block before finals. - For PK columns, require an explicit decision: declarative navigation when row navigation is intended, otherwise hidden technical PK handling.
- Hard-fail
- Cards image mapping gate:
- Hard-fail when the requested cards design explicitly calls for images or thumbnails, the source projects an image-bearing value, and the draft leaves that value unmapped.
- Hard-fail when a cards draft embeds image markup into
title,subtitle,body, orsecondaryBodyeven though the native cardsmedia.imagehook can express the image. - For BLOB-backed cards images, require
media.imageto map the raw BLOB alias and keep the companion storage columns in the source projection perreferences/policies/memory-bank/40-components/apex.region-media.md; this projection is display-only and remains subject to the SQL/PLSQL LOB comparison-key ban in20-data/apex.sql.md. - For URL-backed cards images, require
media.imageto map the image-URL column alias or a projected&COLUMN.substitution-backed URL value.
- Classic report default template gate (hard fail when applicable):
- For every
classicReportregion, require the canonical shared default template block exactly. - Require
appearance { template: @/standard templateOptions: #DEFAULT# }. - Hard-fail
CLASSIC_REPORT_COMPONENT_APPEARANCE_REQUIRED_001whencomponentAppearance.templateis missing, omitted, or not@/standard; live compiler validation maps this to property411and reportscomponentAppearance - template (string). - Require
componentAppearance { template: @/standard templateOptions: #DEFAULT# }. - For the documented
@/contextual-infovariant, require that override throughappearance.templatewhile keepingcomponentAppearance.template: @/standard. - Fail missing blocks, alternate templates, extra modifiers, or invalid
appearance.templateOptions/componentAppearance.templateOptionsformatting unless the selected scenario contract explicitly documents an override. - Cite
references/policies/memory-bank/40-components/apex.templates.md,references/policies/memory-bank/30-pages/apex.classic-report.md, andtemplates/region-components/classic-report/classic-report.contextual-info.md.
- For every
- Smart Filters target gate (hard fail when applicable):
- Hard-fail
SMART_FILTER_RESULTS_REGION_REQUIRED_001whenfilteredRegiondoes not reference an existing page results region. - Hard-fail
SMART_FILTER_RESULTS_REGION_REQUIRED_001whenfilteredRegionpoints to a map region, map layer, Smart Filters region, Faceted Search region, or other non-results alias. - Hard-fail
SMART_FILTER_RESULTS_REGION_ORDER_REQUIRED_001when a Smart Filters region is declared after the results region referenced byfilteredRegion. - Hard-fail
SMART_FILTER_SEARCH_SOURCE_REQUIRED_001when a free-text search filter uses an invalid single-column shortcut instead of the canonicalsource.dbColumnscontract.
- Hard-fail
- Content Row projection gate:
- Hard-fail when report-mode Content Row omits the PK-backed identity column needed for row actions, selection state, or same-page context binding.
- Hard-fail when any Content Row
rowSelectionmode is present but no child column is marked withsource.primaryKey: true. - Hard-fail when any Content Row child column uses grouping but the top-level
orderBydoes not sort by all grouped columns first, in grouping order, before remaining tie-breakers. - Hard-fail when Content Row omits explicit child
column (...)metadata for any delivered source projection when the generated artifact is meant to mirror the region source by default. - Hard-fail when a Content Row source projects multiple fields but the emitted DSL adds only a compiler-satisfying subset of child columns.
- Metric Card projection gate:
- Hard-fail when report-mode Metric Card omits explicit child
column (...)metadata for any delivered source projection. - Hard-fail when a Metric Card source projects multiple fields but the emitted DSL adds only one compiler-satisfying child column.
- Hard-fail when a draft tries to force several independent metrics into one card row without normalizing the source projection. When one Metric Card region is meant to render multiple cards, prefer a multi-row source, usually
UNION ALLacross per-metric SELECTs with the same aliases in the same order. - Hard-fail when a draft collapses the Metric Card property surface down to
settings.titleandsettings.metriceven though the requested design clearly needs accepted family hooks such asmeta, CSS-class settings, orrowSelection. - Hard-fail when a Metric Card draft emits
settings.displayAvatarinstead ofplugin-avatar.displayAvatar. - Hard-fail when a Metric Card draft emits
settings.displayBadgeinstead ofplugin-badge.displayBadge. - Hard-fail when critique rationale assumes settings/plugin hook names must match child-column names one-for-one. Treat those properties as value hooks, not as a second column declaration system.
- Hard-fail when any Metric Card
rowSelectionmode is present but no child column is marked withsource.primaryKey: true.
- Hard-fail when report-mode Metric Card omits explicit child
- Metric Card dashboard chrome gate:
- Hard-fail
METRIC_CARD_STANDARD_TEMPLATE_FORBIDDEN_001when a dashboard KPI Metric Card strip uses visible@/standardregion chrome without an explicit titled or landmarked wrapper justification.
- Hard-fail
- Dashboard layout row plan gate:
- Hard-fail
DASHBOARD_LAYOUT_ROW_PLAN_REQUIRED_001when a dashboard draft omitslayout_row_planfrom the Generation Plan for KPI strips, chart rows, report/detail rows, or side-by-side component rows. - Hard-fail
DASHBOARD_LAYOUT_ROW_PLAN_REQUIRED_001whenlayout_row_planentries do not includeslot,row,recipe, and orderedregionsstatic IDs. - Hard-fail
DASHBOARD_LAYOUT_ROW_PLAN_REQUIRED_001when a dashboard stacks all chart or content regions without explicit vertical-stack user intent or without marking the stacked region as an intentional detail/full-width section. - For five dashboard charts, require one
two-up-equalrow followed by onethree-up-equalrow unless the prompt explicitly requests a different chart layout. - Cite
references/policies/memory-bank/30-pages/apex.dashboard.md,references/policies/memory-bank/30-pages/apex.layout.md, andtemplates/page-examples/dashboard-page/dashboard-page._common.md.
- Hard-fail
- Other report-type template component projection gate:
- For report-type template components such as Media List and Comments, hard-fail when the generated artifact responds to a missing-column compiler error by adding only one placeholder child column while the source still projects multiple fields.
- Treat the default expectation for those families as explicit child
column (...)metadata aligned with the delivered source projection unless a stricter family contract says otherwise. - Hard-fail when any template component emits
rowSelectionwith a non-null mode but no child column is marked withsource.primaryKey: true.
- Image Upload stale-property gate:
- Hard-fail
IMAGE_UPLOAD_LEGACY_PROPERTY_FORBIDDEN_001whenimageUploademits stale upload-only settings such asstorageType,displayAs,allowMultipleFiles,maxFileSize,displayDownloadLink,downloadLinkText,purgeFilesAt,dropzoneTitle,dropzoneDescription,maxWidth,maxHeight,allowCropping,aspectRatio,customAspectRatio,captureUsing, orpreviewSize. - Hard-fail
IMAGE_UPLOAD_LEGACY_PROPERTY_FORBIDDEN_001whenimageUploademits stale source metadata such asmimeTypeColumn,filenameColumn, orblobLastUpdatedColumn.
- Hard-fail
- Dynamic action vocabulary checks (hard fail):
- For
action: setValue, fail ifsetTypeappears, ifsettings.typeis missing, or ifsettings.type: sqlStatementappears. - For
setValue, require matching payload keys by type (static -> value,sqlQuery -> sqlQuery,plsqlFunctionBody -> plsqlFunctionBody,javaScriptExpression -> javaScriptExpression). - Fail if
action: executeJavaScriptCodeappears; requireaction: executeJsCode. - For
executeJsCode, fail ifsettings.codeappears; requiresettings.jsCode. - For debounce/throttle execution control, require
execution.typeandexecution.time. - For debounce/throttle execution control, if
execution.immediateis present it must be explicit boolean (true/false). - For
when.selectionType: button, fail ifwhen.buttonis not alias format (@button-static-id). - For every dynamic action action execution block, require explicit
fireOnInit. - Fail when
fireOnInit: trueappears unless the prompt explicitly requested initialization behavior. - Include
DA_RULE_*IDs in findings and required revisions.
- For
- Template-option serialization (hard fail):
- Fail any multi-value
templateOptionsarray emitted inline with commas, such as[#DEFAULT#, t-Report--stretch]. - Require bracketed multi-line arrays with one accepted value per line while keeping documented composite values atomic.
- Fail any multi-value
- Buttons:
- For
button-actions-batch, verify action-specific guardrails (targets for redirects, databaseAction usage for submitPage, nested triggerAction/menu entries) per 40-components/apex.buttons.md. - For
button-actions-batchremove operations, verify dependency scans are reported and blocked targets are not silently removed. - Hard-fail button
appearance.templateOptionsaliases or naked suffix tokens such asleft,right,push,spin,hide-icon-on-desktop,hide-label-on-mobile,primary,simple,tiny,stretch,pillStart,padLeft,gapRight,padTop,gapBottom,link,success, ornoUI; require the canonical emittedt-Button--...value from the button family contract instead. - Confirm disabled buttons still define behavior blocks, confirmations exist when requiresConfirmation = true, and icon usage matches template rules.
- For
- Navigation & Grouping (non-modal pages)
- Navigation Menu: shared-components/lists.apx must contain an entry targeting the new page (f?p=&APP_ID.:&PAGE_ID.:&APP_SESSION.::&DEBUG.:::). If missing, record as Required Revision (fail per master).
- Breadcrumbs: shared-components/breadcrumbs.apx must contain a matching entry. If missing, record as Required Revision (fail per master).
- Vocabulary contract (hard fail):
application.apxmust usenavigation,navigationMenu, andnavigationBar; fail legacynav,navMenu, ornavBar. - Vocabulary contract (hard fail):
shared-components/themes/**/theme.apxmust usethemeNumber,javaScript,navigationBarList,navigationMenuListPosition,navigationMenuListTop, andnavigationMenuListSide; failthemeNo,js,navBarList,navMenuListPosition,navMenuListTop, andnavMenuListSide. - Vocabulary contract (hard fail):
shared-components/breadcrumbs.apxmust usepageNumber; failpageNo. - Mixed vocabulary contract (hard fail): fail any app that mixes old and canonical scaffold vocabulary in baseline app/shared-component files.
BREADCRUMB_RULE_PARENT_SCOPE_001(hard-fail): In shared-components/breadcrumbs.apx, allowparentEntryonly insideappearance {}for breadcrumb entries.BREADCRUMB_RULE_PARENT_SCOPE_001(hard-fail): Flag any breadcrumb entry usingexecution { parentEntry: ... }; execution must not containparentEntry.- Shared list/breadcrumb link syntax: enforce
link { target: ... }; failbehavior { target: ... }in shared-components lists/breadcrumbs. - Shared component settings syntax: enforce
componentSetting ... settings { attributes: {...} }; fail direct keys undersettings {}(for exampledisplay_as,mode). - Grouping key: At page root, forbid group; require pageGroup when grouping is requested. Cite references/policies/memory-bank/30-pages/apex.page.md. Region/item-level group within templates remains valid and is not flagged.
- Server-side conditions: Check each
serverSideCondition {}emitted by the draft. Ensure the type exists in references/policies/memory-bank/20-data/apex.logic.md, all required attributes are present, and values match the providedserver_side_conditioninputs or the resolved SSC token mapping. ForitemIsInColonDelimitedListanditemIsNotInColonDelimitedList, requirelistin finals; treat legacyvalueas migration input only and flag normalization as Required Revision. Flag missing attributes, unknown tokens, or invented values as Required Revisions (Missing Inputs when data was not supplied). - When a batch SSC draft summary is generated, confirm the summary file exists and lists the targeted components. Fail if the summary was omitted before finals.
- Faceted-search
listEntriesenforcement (reference-only; policy lives inreferences/policies/memory-bank/30-pages/apex.faceted-search.md):- Allow
listEntries.maxDisplayedEntriesonly when facettypeischeckboxGrouporradioGroup. - For all other facet types (for example
range,selectList,search), flaglistEntriesas Required Revision.
- Allow
- Column Alignment (Reports/Grids)
- For each report/grid column: if source.dataType is NUMBER → heading.alignment: end and layout.columnAlignment: end; if STRING (VARCHAR2) → heading.alignment: start and layout.columnAlignment: start. Applies to Interactive Report, Classic Report, Interactive Grid. See 40-components/apex.templates.md.
- Accessibility/UX (Universal Theme)
- Labels: Ensure every item has a visible label or an accessible name; flag placeholder-only labeling and undocumented hidden labels.
- Landmarks/Regions: Use UT templates that emit proper landmarks for breadcrumbs, page headers, nav, main content.
- CSS/class discipline: Flag invented CSS classes or selector-driven layout fixes. Structure must be solved through templates, template options, and layout/alignment attributes per 40-components/apex.templates.md.
- Performance
- Pagination and limits: enforce region defaults unless justified otherwise from
20-data/apex.sql.md:- Classic Report:
rowRangesXToYNoPagination - Interactive Report:
rowRangesXToY - Interactive Grid:
scrollFlag missing pagination blocks, unbounded datasets, unsupported pagination types, or cross-region token misuse.
- Classic Report:
- SQL hygiene: No SELECT *; no SQL hints; table aliases on all tables; leading-comma SELECT formatting (one column per line); require explicit ordering for deterministic paging; encourage bind variables and view-based logic.
- Hard-fail SQL-backed template components when
source.sqlQuerycontainsORDER BYor the region lacks top-levelorderBy {}. Static ordering must usetype: staticValueplusorderByClause; item-controlled ordering must usetype: itemplusitem.itemNameanditem.orderBys. - Hard-fail
STATIC_ID_WHERE_LOWER_REQUIRED_001when SQL/PLSQLWHEREpredicates compare columns ending with_static_idwithout canonical LOWER normalization (lower(col_static_id) = lower(value)/!=orlower(col_static_id) in ('lowercase', ...)). - Hard-fail
IR_TEXT_SEARCH_CASE_NORMALIZATION_REQUIRED_001when Interactive Report SQL uses user-entered text predicates with=/!=/LIKEand does not normalize both sides withLOWER(). - Lazy loading/caching: Recommend lazy load for secondary regions and caching for stable LOVs/reference data.
- Downloads: CSV/Excel/PDF restricted by authorization; flag formats enabled without authz.
- Pagination and limits: enforce region defaults unless justified otherwise from
- Internationalization (i18n)
- Flag hard-coded user-facing strings in labels, headings, help text, region titles, and messages. Prefer Text Messages/shared components.
- Ensure format masks and NLS usage are consistent with i18n policy.
- Help text governance
- Enforce the default guidance layer for generated apps. Record
DEFAULT_GUIDANCE_LAYER_REQUIRED_001when major pages omit page help, when user-editable or filter/control items omit concise help without a documented exemption, or when key report columns omit the required guidance/comment plan. - Record
DEFAULT_GUIDANCE_LAYER_REQUIRED_001when help text or page help uses placeholder or empty-value patterns such asHelp Text Here,Inline Help Text Here,No help is available for this page, or label-only restatements that fail to explain input, format, or purpose. - Verify page/region/item help references Text Messages, planned message keys, or documented sources per 10-global/apex.global.md. Flag inline/detailed help exceeding length limits (inline <=60 chars; detailed <=400 chars) or duplicating labels.
- Require revision when provisional help text or user-facing column guidance is emitted without a Text Message key or planned key, even if the underlying copy is otherwise acceptable.
- Require revision when business-significant, derived, status, or action report/grid columns omit developer-facing
comments { comments: ... }metadata, omit any of the required attributes (Display Label,Display in Report,Display in Form,Format Mask,Value Required,Read Only,Primary Display Column,Authorization Scheme), or drift from the canonical field order whenSummaryis present. Hidden technical IDs may skip user-facing guidance but not essential maintainability comments. - Require revision when
comments { comments: ... }uses placeholder or generic filler language instead of reflecting the emitted column behavior and semantics. - Ensure draft summaries from the help-text workflow include intent, Text Message key/plan, and notes; fail if user-facing literals are emitted without localization plan.
- Differentiate help from metadata comments; when
comments {}is used for region columns, treat it as generated metadata rather than runtime help text.
- Enforce the default guidance layer for generated apps. Record
- DevOps/Logging and CSP
- apex_debug: Recommend diagnostic checkpoints in non-prod for critical flows (do not enforce in prod).
- External URLs and CSP: Flag external asset URLs (images/icons/scripts) not under #APP_FILES#/#THEME_FILES#; require CSP-aligned sources.
- Missing Inputs
- Identify required tables, PKs, columns, LOV mapping (per components.registry.json) without guessing.
- Parallel-skill constitutional checks
- Verify Draft includes
claims,required_inputs,assumptions, andsource_paths. - Fail when any
source_pathsentry does not exist. - Detect contradictions across parallel skill claims/assumptions (identifiers, ownership, workflow path); require explicit reconciliation or
Missing Inputs.
- Verify Draft includes
- Confidence Score
- Emit a single score [0.00–1.00]; target ≥ 0.95.
- Import runtime gate feedback:
- Hard-fail
RUNTIME_GATE_COMPLETION_REQUIRED_001if completion wording is attempted without direct SQLcl validate success for the sameresolved_app_path. - Hard-fail
ONLINE_IMPORT_CONDITIONAL_001forvalidate-and-importruns when completion is attempted without direct SQLcl import success after direct SQLcl validate success in the same authenticated session. - If local predeploy validation or the direct SQLcl roundtrip reports failure, record the blocking reason in
FINDINGSand keep run blocked. - Map runtime gate errors deterministically:
DSL_VOCAB_CONTRACT_FAILEDDSL_SCHEMA_CONTRACT_FAILEDSQLCL_NOT_FOUNDSQLCL_VALIDATE_FAILEDSQLCL_IMPORT_FAILED
- Require another generate -> review -> fix pass when any runtime gate error exists (up to 2 additional live retries after the first failure / 3 total live rounds under master loop policy).
- Hard-fail
- Governance gates (existence checks only; no content expansion):
- Critical Pages (always): ensure presence of Page 0 (
p00000-*.apx), Page 1 (p00001-*.apx), and Page 9999 (p09999-*.apx) in the appropriate output ({app_root}/pages/ when applicable). - Critical Shared Components (Whole Application only):
- Ensure {app_root}/shared-components/ exists and is populated.
- If missing, record as a required Revision action “Provision the runtime shared-components seed from base-app-structure/scaffold-example/shared-components.”
- Application skeleton parity (Whole Application only):
- Verify {app_root}/ contains only named runtime artifacts at top level:
.apex/,application.apx,deployments/,page-groups.apx,pages/,shared-components/, andsupporting-objects/. - Hard-fail
APP_TEMPLATE_ARTIFACT_LEAK_001when the app root contains top-level entries outside that runtime-artifact set. - Hard-fail
APP_TEMPLATE_ARTIFACT_LEAK_001when the app root contains leaked template-family files such asREADME.md,base-app-structure._common.md,base-app-structure._index.md, orbase-app-structure.registry.json. - Compare {app_root}/pages/ against
templates/base-app-structure/scaffold-example/pages/; flag if any baseline page seed (p00000-*,p00001-*,p09999-*) or other skeleton file was deleted/omitted without explicit user direction. - Flag missing shared-components artifacts that exist in the skeleton source (authentications, authorizations, breadcrumbs, lists, LOVs, static-files, themes). Record as Required Revision if absent.
- Verify {app_root}/ contains only named runtime artifacts at top level:
- Login page linkage:
- If a custom login page is created or the default login page is replaced, verify
{app_root}/application.apxupdatesnavigation.loginUrltof?p=&APP_ID.:<login_page_number>:&APP_SESSION.::&DEBUG.:::using the active login page number. - Flag as failure if
loginUrlstill points toLOGIN,9999, or any stale target that does not match the actual custom login page.
- If a custom login page is created or the default login page is replaced, verify
- Placeholder leakage:
- Flag documentation-only placeholders copied from
base-app-structure/, includingCUSTOM_FILE_NAME.css,console.log('Page loaded'),console.log('Login page loaded'),Header text example,Footer text example,This is a help text example, andComments example.
- Flag documentation-only placeholders copied from
- Critical Pages (always): ensure presence of Page 0 (
- Loop policy
- If Confidence < 0.95, request one more generate -> review -> fix pass. If still < 0.95 after second pass, stop and record outstanding issues.
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.
- 9d ago First seen · 442 lines · 0 tokens per session scan A 7586a509cd4a
30-agent-critique 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 11,973 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.
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.
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…
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…
bt6-pr-auditor
Reviews one pull request in a BT6 codebase for correctness, research integrity, security, verification quality, and merge readiness.
Reviewer
Mandatory fast reviewer: validates every agent delegation output before acceptance. Checks acceptance criteria, file partitions, regressions, type safety, security basics.
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.