apex/apexlang: add runtime error catalog and runtime verification methodology#80
Open
Caleb0796 wants to merge 1 commit into
Open
apex/apexlang: add runtime error catalog and runtime verification methodology#80Caleb0796 wants to merge 1 commit into
Caleb0796 wants to merge 1 commit into
Conversation
…hodology Adds guidance for the class of Oracle APEX defects that pass `apex validate`/`apex import` cleanly but fail when a user interacts with the running app. New references under references/domains/debugging/: - runtime-error-catalog.md: five "passes validate/import, fails at runtime" signatures (a display-only/protected item posting on a full-page submit; Session State Protection rejecting an AJAX submit; ORA-22816 from native IG RETURNING through an INSTEAD OF trigger view; editable-IG HTTP 400 / Reload on Submit; a failure routed through the success-message channel). Each entry gives the runtime signature, the cause (documented where Oracle documents it with docs.oracle.com citations, marked observed otherwise), a generation-time prevention rule, and a runtime confirmation. - runtime-verification-methodology.md: data-write/submit-path verification and agent-workflow discipline that complements runtime-ui-verification.md. Registration and cross-linking: failure-map.md rows, owner rule, and anti-patterns; fix-patterns.md sections; references/domains/README.md index, trigger coverage, and failure taxonomy; domains-catalog.json debugging keywords; and one SKILL.md Runtime Contract bullet. Documentation and JSON only; adds no .apx artifacts and leaves the compiler/validator contract unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: Caleb0796 <hopestand2012@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposal: runtime-verification guidance for the
apex/apexlangskillSummary
The
apex/apexlangskill is excellent at proving a generated app compiles and imports —apex validate -input, the compiler-truth audit,problems.json, and the live-validate gate. It has comparatively little on a distinct class of defects that pass validate/import cleanly and then fail the first time a user interacts with the running app: a full-page submit rejected in the accept phase, an AJAX submit rejected by Session State Protection,ORA-22816on an editable-grid insert, an editable-gridHTTP 400, or a failure that renders as a green success message.The existing debugging domain covers navigation/UI drift (
runtime-ui-verification.md) and genericAPEX_DEBUG_MESSAGESlookup (failure-map.md), but it does not catalog these specific, preventable, documented runtime errors, and it has no data-write / submit-path verification discipline (only UI-state verification). This proposal fills that gap.What this adds
Two new references under
references/domains/debugging/, plus registration and small edits so they are discoverable through the domain's normal navigation surfaces.runtime-error-catalog.md— five "passes validate/import, fails at runtime" signatures. Each entry gives the runtime signature, the cause (documented where Oracle documents it, marked observed otherwise), a generation-time rule a generator can obey to avoid emitting the defect, and how to confirm at runtime:ORA-22816from native IGRETURNINGthrough an INSTEAD OF trigger view.HTTP 400(Reload on Submit).runtime-verification-methodology.md— agent-workflow discipline that complementsruntime-ui-verification.md: validate/import success is necessary but not sufficient; "no fake greens" (a programmaticsetValue/DML success is not proof the real UI path works); mechanism-proof vs end-to-end-proof; reproduce in both the DB and the live UI; re-verify review findings against the live app before acting; a self-audit ledger; and a session-health check (clearly labeled environment-observed) so an agent does not blame the artifact for a poisoned/idle tooling session.Edited for registration and cross-linking
failure-map.md— five new symptom→owner rows, one owner-selection rule, two anti-patterns.fix-patterns.md— two fix-pattern sections (runtime page-protection/submit; runtime data-write & error-path verification).references/domains/README.md— index bullets, trigger-coverage terms, and Failure Taxonomy entries for the new buckets.assets/apexlang/domains-catalog.json— debugging keywords (machine-readable routing).SKILL.md— one Runtime Contract bullet: validate/import success is not runtime success; run a runtime behavior pass when a change affects a page's submit/DML/AJAX/error path.Design principles honored
docs.oracle.com(ORA-22816;APEX_ERROR.ADD_ERROR; Reload on Submit = Only for Success; Session State Protection; Page Protection Violation).ITEM_POSTING_VIOLATION;ORA-20987as an SSP signature (it is a reusedraise_application_errornumber);apex_application.g_print_success_message; the editable-IGHTTP 400hard requirement; and the session-health narratives.runtime-ui-verification.md.How to validate
jq empty apex/apexlang/assets/apexlang/domains-catalog.json.references/domains/debugging/*.mdpath referenced by the changed files exists.## Sourcescitingdocs.oracle.com;failure-map.mdtable rows have 4 columns;git diff --checkis clean.runtime-error-catalog.mdand confirm each cited Oracle URL supports the documented claim, and that each community/observed item is labeled as such.Review performed before submission
Notes for maintainers
.apxartifacts and does not touch the validator/compiler contract (validator-fix-recipes.jsonis intentionally left unchanged, since these runtime errors are not compiler-emitted rule IDs).Signed-off-by. Per Oracle's CONTRIBUTING, merging requires the contributor to have signed the Oracle Contributor Agreement (https://oca.opensource.oracle.com).Oracle's CONTRIBUTING recommends a tracking issue; I did not open one unprompted — happy to file one if maintainers prefer to discuss first.
🤖 Generated with Claude Code