@raishin/vanguard-frontier-agentic 3.2.0 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +22 -1
- package/.cursor-plugin/plugin.json +22 -1
- package/.github/plugin/marketplace.json +1 -1
- package/README.md +33 -15
- package/agents/cross-functional/revenue-critical-journey-integrity-agent/AGENT.md +112 -0
- package/agents/cross-functional/revenue-critical-journey-integrity-agent/harnesses/claude-code.agent.md +111 -0
- package/agents/cross-functional/revenue-critical-journey-integrity-agent/harnesses/codex.toml +37 -0
- package/agents/cross-functional/revenue-critical-journey-integrity-agent/harnesses/copilot.agent.md +120 -0
- package/agents/cross-functional/revenue-critical-journey-integrity-agent/harnesses/cursor.agent.md +112 -0
- package/agents/cross-functional/revenue-critical-journey-integrity-agent/harnesses/gemini.agent.md +112 -0
- package/agents/cross-functional/revenue-critical-journey-integrity-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/cross-functional/revenue-critical-journey-integrity-agent/harnesses/kiro-ide.agent.md +111 -0
- package/agents/cross-functional/revenue-critical-journey-integrity-agent/metadata.json +42 -0
- package/agents/java/README.md +73 -0
- package/agents/java/java-application-server-exit-agent/AGENT.md +59 -0
- package/agents/java/java-application-server-exit-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/java/java-application-server-exit-agent/harnesses/codex.toml +40 -0
- package/agents/java/java-application-server-exit-agent/harnesses/copilot.agent.md +42 -0
- package/agents/java/java-application-server-exit-agent/harnesses/cursor.agent.md +42 -0
- package/agents/java/java-application-server-exit-agent/harnesses/gemini.agent.md +42 -0
- package/agents/java/java-application-server-exit-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/java/java-application-server-exit-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/java/java-application-server-exit-agent/metadata.json +41 -0
- package/agents/java/java-concurrency-and-virtual-thread-agent/AGENT.md +59 -0
- package/agents/java/java-concurrency-and-virtual-thread-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/java/java-concurrency-and-virtual-thread-agent/harnesses/codex.toml +40 -0
- package/agents/java/java-concurrency-and-virtual-thread-agent/harnesses/copilot.agent.md +42 -0
- package/agents/java/java-concurrency-and-virtual-thread-agent/harnesses/cursor.agent.md +42 -0
- package/agents/java/java-concurrency-and-virtual-thread-agent/harnesses/gemini.agent.md +42 -0
- package/agents/java/java-concurrency-and-virtual-thread-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/java/java-concurrency-and-virtual-thread-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/java/java-concurrency-and-virtual-thread-agent/metadata.json +41 -0
- package/agents/java/java-container-and-kubernetes-readiness-agent/AGENT.md +59 -0
- package/agents/java/java-container-and-kubernetes-readiness-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/java/java-container-and-kubernetes-readiness-agent/harnesses/codex.toml +40 -0
- package/agents/java/java-container-and-kubernetes-readiness-agent/harnesses/copilot.agent.md +42 -0
- package/agents/java/java-container-and-kubernetes-readiness-agent/harnesses/cursor.agent.md +42 -0
- package/agents/java/java-container-and-kubernetes-readiness-agent/harnesses/gemini.agent.md +42 -0
- package/agents/java/java-container-and-kubernetes-readiness-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/java/java-container-and-kubernetes-readiness-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/java/java-container-and-kubernetes-readiness-agent/metadata.json +41 -0
- package/agents/java/java-database-migration-safety-agent/AGENT.md +59 -0
- package/agents/java/java-database-migration-safety-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/java/java-database-migration-safety-agent/harnesses/codex.toml +40 -0
- package/agents/java/java-database-migration-safety-agent/harnesses/copilot.agent.md +42 -0
- package/agents/java/java-database-migration-safety-agent/harnesses/cursor.agent.md +42 -0
- package/agents/java/java-database-migration-safety-agent/harnesses/gemini.agent.md +42 -0
- package/agents/java/java-database-migration-safety-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/java/java-database-migration-safety-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/java/java-database-migration-safety-agent/metadata.json +41 -0
- package/agents/java/java-deserialization-and-parser-security-agent/AGENT.md +57 -0
- package/agents/java/java-deserialization-and-parser-security-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/java/java-deserialization-and-parser-security-agent/harnesses/codex.toml +37 -0
- package/agents/java/java-deserialization-and-parser-security-agent/harnesses/copilot.agent.md +40 -0
- package/agents/java/java-deserialization-and-parser-security-agent/harnesses/cursor.agent.md +40 -0
- package/agents/java/java-deserialization-and-parser-security-agent/harnesses/gemini.agent.md +40 -0
- package/agents/java/java-deserialization-and-parser-security-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/java/java-deserialization-and-parser-security-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/java/java-deserialization-and-parser-security-agent/metadata.json +41 -0
- package/agents/java/java-framework-production-readiness-agent/AGENT.md +57 -0
- package/agents/java/java-framework-production-readiness-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/java/java-framework-production-readiness-agent/harnesses/codex.toml +39 -0
- package/agents/java/java-framework-production-readiness-agent/harnesses/copilot.agent.md +40 -0
- package/agents/java/java-framework-production-readiness-agent/harnesses/cursor.agent.md +40 -0
- package/agents/java/java-framework-production-readiness-agent/harnesses/gemini.agent.md +40 -0
- package/agents/java/java-framework-production-readiness-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/java/java-framework-production-readiness-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/java/java-framework-production-readiness-agent/metadata.json +41 -0
- package/agents/java/java-jdk-lifecycle-and-upgrade-agent/AGENT.md +55 -0
- package/agents/java/java-jdk-lifecycle-and-upgrade-agent/harnesses/claude-code.agent.md +38 -0
- package/agents/java/java-jdk-lifecycle-and-upgrade-agent/harnesses/codex.toml +37 -0
- package/agents/java/java-jdk-lifecycle-and-upgrade-agent/harnesses/copilot.agent.md +38 -0
- package/agents/java/java-jdk-lifecycle-and-upgrade-agent/harnesses/cursor.agent.md +38 -0
- package/agents/java/java-jdk-lifecycle-and-upgrade-agent/harnesses/gemini.agent.md +38 -0
- package/agents/java/java-jdk-lifecycle-and-upgrade-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/java/java-jdk-lifecycle-and-upgrade-agent/harnesses/kiro-ide.agent.md +38 -0
- package/agents/java/java-jdk-lifecycle-and-upgrade-agent/metadata.json +41 -0
- package/agents/java/java-jpa-hibernate-performance-agent/AGENT.md +57 -0
- package/agents/java/java-jpa-hibernate-performance-agent/harnesses/claude-code.agent.md +40 -0
- package/agents/java/java-jpa-hibernate-performance-agent/harnesses/codex.toml +38 -0
- package/agents/java/java-jpa-hibernate-performance-agent/harnesses/copilot.agent.md +40 -0
- package/agents/java/java-jpa-hibernate-performance-agent/harnesses/cursor.agent.md +40 -0
- package/agents/java/java-jpa-hibernate-performance-agent/harnesses/gemini.agent.md +40 -0
- package/agents/java/java-jpa-hibernate-performance-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/java/java-jpa-hibernate-performance-agent/harnesses/kiro-ide.agent.md +40 -0
- package/agents/java/java-jpa-hibernate-performance-agent/metadata.json +41 -0
- package/agents/java/java-jvm-performance-and-gc-agent/AGENT.md +60 -0
- package/agents/java/java-jvm-performance-and-gc-agent/harnesses/claude-code.agent.md +43 -0
- package/agents/java/java-jvm-performance-and-gc-agent/harnesses/codex.toml +40 -0
- package/agents/java/java-jvm-performance-and-gc-agent/harnesses/copilot.agent.md +43 -0
- package/agents/java/java-jvm-performance-and-gc-agent/harnesses/cursor.agent.md +43 -0
- package/agents/java/java-jvm-performance-and-gc-agent/harnesses/gemini.agent.md +43 -0
- package/agents/java/java-jvm-performance-and-gc-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/java/java-jvm-performance-and-gc-agent/harnesses/kiro-ide.agent.md +43 -0
- package/agents/java/java-jvm-performance-and-gc-agent/metadata.json +41 -0
- package/agents/java/java-kafka-reliability-agent/AGENT.md +60 -0
- package/agents/java/java-kafka-reliability-agent/harnesses/claude-code.agent.md +43 -0
- package/agents/java/java-kafka-reliability-agent/harnesses/codex.toml +40 -0
- package/agents/java/java-kafka-reliability-agent/harnesses/copilot.agent.md +43 -0
- package/agents/java/java-kafka-reliability-agent/harnesses/cursor.agent.md +43 -0
- package/agents/java/java-kafka-reliability-agent/harnesses/gemini.agent.md +43 -0
- package/agents/java/java-kafka-reliability-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/java/java-kafka-reliability-agent/harnesses/kiro-ide.agent.md +43 -0
- package/agents/java/java-kafka-reliability-agent/metadata.json +40 -0
- package/agents/java/java-maestro-agent/AGENT.md +51 -0
- package/agents/java/java-maestro-agent/harnesses/claude-code.agent.md +34 -0
- package/agents/java/java-maestro-agent/harnesses/codex.toml +37 -0
- package/agents/java/java-maestro-agent/harnesses/copilot.agent.md +34 -0
- package/agents/java/java-maestro-agent/harnesses/cursor.agent.md +34 -0
- package/agents/java/java-maestro-agent/harnesses/gemini.agent.md +34 -0
- package/agents/java/java-maestro-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/java/java-maestro-agent/harnesses/kiro-ide.agent.md +34 -0
- package/agents/java/java-maestro-agent/metadata.json +40 -0
- package/agents/java/java-resilience-pattern-agent/AGENT.md +59 -0
- package/agents/java/java-resilience-pattern-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/java/java-resilience-pattern-agent/harnesses/codex.toml +39 -0
- package/agents/java/java-resilience-pattern-agent/harnesses/copilot.agent.md +42 -0
- package/agents/java/java-resilience-pattern-agent/harnesses/cursor.agent.md +42 -0
- package/agents/java/java-resilience-pattern-agent/harnesses/gemini.agent.md +42 -0
- package/agents/java/java-resilience-pattern-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/java/java-resilience-pattern-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/java/java-resilience-pattern-agent/metadata.json +42 -0
- package/agents/java/java-spring-security-agent/AGENT.md +59 -0
- package/agents/java/java-spring-security-agent/harnesses/claude-code.agent.md +42 -0
- package/agents/java/java-spring-security-agent/harnesses/codex.toml +39 -0
- package/agents/java/java-spring-security-agent/harnesses/copilot.agent.md +42 -0
- package/agents/java/java-spring-security-agent/harnesses/cursor.agent.md +42 -0
- package/agents/java/java-spring-security-agent/harnesses/gemini.agent.md +42 -0
- package/agents/java/java-spring-security-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/java/java-spring-security-agent/harnesses/kiro-ide.agent.md +42 -0
- package/agents/java/java-spring-security-agent/metadata.json +40 -0
- package/agents/java/java-test-architecture-agent/AGENT.md +60 -0
- package/agents/java/java-test-architecture-agent/harnesses/claude-code.agent.md +43 -0
- package/agents/java/java-test-architecture-agent/harnesses/codex.toml +40 -0
- package/agents/java/java-test-architecture-agent/harnesses/copilot.agent.md +43 -0
- package/agents/java/java-test-architecture-agent/harnesses/cursor.agent.md +43 -0
- package/agents/java/java-test-architecture-agent/harnesses/gemini.agent.md +43 -0
- package/agents/java/java-test-architecture-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/java/java-test-architecture-agent/harnesses/kiro-ide.agent.md +43 -0
- package/agents/java/java-test-architecture-agent/metadata.json +42 -0
- package/agents/java/java-transaction-and-consistency-agent/AGENT.md +58 -0
- package/agents/java/java-transaction-and-consistency-agent/harnesses/claude-code.agent.md +41 -0
- package/agents/java/java-transaction-and-consistency-agent/harnesses/codex.toml +40 -0
- package/agents/java/java-transaction-and-consistency-agent/harnesses/copilot.agent.md +41 -0
- package/agents/java/java-transaction-and-consistency-agent/harnesses/cursor.agent.md +41 -0
- package/agents/java/java-transaction-and-consistency-agent/harnesses/gemini.agent.md +41 -0
- package/agents/java/java-transaction-and-consistency-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/java/java-transaction-and-consistency-agent/harnesses/kiro-ide.agent.md +41 -0
- package/agents/java/java-transaction-and-consistency-agent/metadata.json +41 -0
- package/agents/php/composer-supply-chain-agent/AGENT.md +114 -0
- package/agents/php/composer-supply-chain-agent/harnesses/claude-code.agent.md +113 -0
- package/agents/php/composer-supply-chain-agent/harnesses/codex.toml +119 -0
- package/agents/php/composer-supply-chain-agent/harnesses/copilot.agent.md +122 -0
- package/agents/php/composer-supply-chain-agent/harnesses/cursor.agent.md +114 -0
- package/agents/php/composer-supply-chain-agent/harnesses/gemini.agent.md +114 -0
- package/agents/php/composer-supply-chain-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/php/composer-supply-chain-agent/harnesses/kiro-ide.agent.md +113 -0
- package/agents/php/composer-supply-chain-agent/metadata.json +31 -0
- package/agents/php/php-application-security-agent/AGENT.md +113 -0
- package/agents/php/php-application-security-agent/harnesses/claude-code.agent.md +112 -0
- package/agents/php/php-application-security-agent/harnesses/codex.toml +118 -0
- package/agents/php/php-application-security-agent/harnesses/copilot.agent.md +121 -0
- package/agents/php/php-application-security-agent/harnesses/cursor.agent.md +113 -0
- package/agents/php/php-application-security-agent/harnesses/gemini.agent.md +113 -0
- package/agents/php/php-application-security-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/php/php-application-security-agent/harnesses/kiro-ide.agent.md +112 -0
- package/agents/php/php-application-security-agent/metadata.json +31 -0
- package/agents/php/php-maestro-agent/AGENT.md +81 -0
- package/agents/php/php-maestro-agent/harnesses/claude-code.agent.md +80 -0
- package/agents/php/php-maestro-agent/harnesses/codex.toml +86 -0
- package/agents/php/php-maestro-agent/harnesses/copilot.agent.md +89 -0
- package/agents/php/php-maestro-agent/harnesses/cursor.agent.md +81 -0
- package/agents/php/php-maestro-agent/harnesses/gemini.agent.md +81 -0
- package/agents/php/php-maestro-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/php/php-maestro-agent/harnesses/kiro-ide.agent.md +80 -0
- package/agents/php/php-maestro-agent/metadata.json +31 -0
- package/agents/php/php-runtime-upgrade-readiness-agent/AGENT.md +117 -0
- package/agents/php/php-runtime-upgrade-readiness-agent/harnesses/claude-code.agent.md +116 -0
- package/agents/php/php-runtime-upgrade-readiness-agent/harnesses/codex.toml +122 -0
- package/agents/php/php-runtime-upgrade-readiness-agent/harnesses/copilot.agent.md +125 -0
- package/agents/php/php-runtime-upgrade-readiness-agent/harnesses/cursor.agent.md +117 -0
- package/agents/php/php-runtime-upgrade-readiness-agent/harnesses/gemini.agent.md +117 -0
- package/agents/php/php-runtime-upgrade-readiness-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/php/php-runtime-upgrade-readiness-agent/harnesses/kiro-ide.agent.md +116 -0
- package/agents/php/php-runtime-upgrade-readiness-agent/metadata.json +30 -0
- package/agents/php/wordpress-security-agent/AGENT.md +107 -0
- package/agents/php/wordpress-security-agent/harnesses/claude-code.agent.md +106 -0
- package/agents/php/wordpress-security-agent/harnesses/codex.toml +112 -0
- package/agents/php/wordpress-security-agent/harnesses/copilot.agent.md +115 -0
- package/agents/php/wordpress-security-agent/harnesses/cursor.agent.md +107 -0
- package/agents/php/wordpress-security-agent/harnesses/gemini.agent.md +107 -0
- package/agents/php/wordpress-security-agent/harnesses/kiro-cli.agent.json +5 -0
- package/agents/php/wordpress-security-agent/harnesses/kiro-ide.agent.md +106 -0
- package/agents/php/wordpress-security-agent/metadata.json +31 -0
- package/catalog/agents.json +609 -0
- package/catalog/asset-integrity.json +1338 -48
- package/catalog/install-roles.json +64 -4
- package/catalog/model-assignments.json +777 -84
- package/catalog/model-policy.json +5 -0
- package/catalog/skill-manifest.json +657 -0
- package/catalog/skills.json +567 -0
- package/package.json +1 -1
- package/plugins/vanguard-frontier-agentic/.codex-plugin/plugin.json +1 -1
- package/powers/README.md +4 -2
- package/powers/vanguard-generic/POWER.md +1 -1
- package/powers/vanguard-java/POWER.md +40 -0
- package/powers/vanguard-php/POWER.md +40 -0
- package/schemas/agent.schema.json +18 -1
- package/schemas/skill.schema.json +27 -1
- package/scripts/generate-docs-data.mjs +1 -1
- package/skills/cross-functional/revenue-critical-journey-integrity-review/SKILL.md +108 -0
- package/skills/cross-functional/revenue-critical-journey-integrity-review/metadata.json +29 -0
- package/skills/cross-functional/revenue-critical-journey-integrity-review/references/idempotency-and-safe-retries.md +155 -0
- package/skills/cross-functional/revenue-critical-journey-integrity-review/references/official-sources.md +71 -0
- package/skills/cross-functional/revenue-critical-journey-integrity-review/references/pci-saq-scope-boundaries.md +118 -0
- package/skills/cross-functional/revenue-critical-journey-integrity-review/references/server-side-revalidation-trust-boundary.md +134 -0
- package/skills/cross-functional/revenue-critical-journey-integrity-review/references/webhook-delivery-dedup-ordering.md +146 -0
- package/skills/cross-functional/revenue-critical-journey-integrity-review/references/workflow-and-output.md +100 -0
- package/skills/java/java-application-server-exit/SKILL.md +59 -0
- package/skills/java/java-application-server-exit/metadata.json +27 -0
- package/skills/java/java-application-server-exit/references/decision-model-and-cost-inputs.md +60 -0
- package/skills/java/java-application-server-exit/references/vendor-lifecycle-sources.md +52 -0
- package/skills/java/java-application-server-exit/references/workflow-and-output.md +102 -0
- package/skills/java/java-concurrency-and-virtual-thread/SKILL.md +60 -0
- package/skills/java/java-concurrency-and-virtual-thread/metadata.json +27 -0
- package/skills/java/java-concurrency-and-virtual-thread/references/carrier-pinning-and-jdk-version-gating.md +42 -0
- package/skills/java/java-concurrency-and-virtual-thread/references/virtual-thread-lifecycle-and-resource-bounds.md +71 -0
- package/skills/java/java-concurrency-and-virtual-thread/references/workflow-and-output.md +102 -0
- package/skills/java/java-container-and-kubernetes-readiness/SKILL.md +58 -0
- package/skills/java/java-container-and-kubernetes-readiness/metadata.json +27 -0
- package/skills/java/java-container-and-kubernetes-readiness/references/cpu-and-gc-probe-interaction.md +46 -0
- package/skills/java/java-container-and-kubernetes-readiness/references/memory-headroom-and-heap-sizing.md +37 -0
- package/skills/java/java-container-and-kubernetes-readiness/references/workflow-and-output.md +103 -0
- package/skills/java/java-database-migration-safety/SKILL.md +58 -0
- package/skills/java/java-database-migration-safety/metadata.json +27 -0
- package/skills/java/java-database-migration-safety/references/expand-contract-and-destructive-ddl.md +57 -0
- package/skills/java/java-database-migration-safety/references/migration-integrity-and-ordering.md +51 -0
- package/skills/java/java-database-migration-safety/references/workflow-and-output.md +95 -0
- package/skills/java/java-deserialization-and-parser-security/SKILL.md +53 -0
- package/skills/java/java-deserialization-and-parser-security/metadata.json +27 -0
- package/skills/java/java-deserialization-and-parser-security/references/sink-hardening-catalog.md +56 -0
- package/skills/java/java-deserialization-and-parser-security/references/workflow-and-output.md +78 -0
- package/skills/java/java-framework-production-readiness/SKILL.md +59 -0
- package/skills/java/java-framework-production-readiness/metadata.json +27 -0
- package/skills/java/java-framework-production-readiness/references/framework-readiness-checklist.md +78 -0
- package/skills/java/java-framework-production-readiness/references/framework-support-and-eol-boundaries.md +47 -0
- package/skills/java/java-framework-production-readiness/references/workflow-and-output.md +108 -0
- package/skills/java/java-jdk-lifecycle-and-upgrade/SKILL.md +54 -0
- package/skills/java/java-jdk-lifecycle-and-upgrade/metadata.json +27 -0
- package/skills/java/java-jdk-lifecycle-and-upgrade/references/jdk-support-and-license-boundaries.md +61 -0
- package/skills/java/java-jdk-lifecycle-and-upgrade/references/lts-migration-and-language-features.md +159 -0
- package/skills/java/java-jdk-lifecycle-and-upgrade/references/workflow-and-output.md +101 -0
- package/skills/java/java-jpa-hibernate-performance/SKILL.md +53 -0
- package/skills/java/java-jpa-hibernate-performance/metadata.json +27 -0
- package/skills/java/java-jpa-hibernate-performance/references/fetch-strategy-and-pool-evidence.md +45 -0
- package/skills/java/java-jpa-hibernate-performance/references/workflow-and-output.md +94 -0
- package/skills/java/java-jvm-performance-and-gc/SKILL.md +59 -0
- package/skills/java/java-jvm-performance-and-gc/metadata.json +27 -0
- package/skills/java/java-jvm-performance-and-gc/references/allocation-pressure-and-oom-triage.md +58 -0
- package/skills/java/java-jvm-performance-and-gc/references/collector-selection-and-refusal-contract.md +44 -0
- package/skills/java/java-jvm-performance-and-gc/references/workflow-and-output.md +101 -0
- package/skills/java/java-kafka-reliability/SKILL.md +58 -0
- package/skills/java/java-kafka-reliability/metadata.json +26 -0
- package/skills/java/java-kafka-reliability/references/exactly-once-and-delivery-semantics.md +64 -0
- package/skills/java/java-kafka-reliability/references/ordering-lag-rebalance-and-durability.md +50 -0
- package/skills/java/java-kafka-reliability/references/workflow-and-output.md +107 -0
- package/skills/java/java-maestro/SKILL.md +111 -0
- package/skills/java/java-maestro/metadata.json +26 -0
- package/skills/java/java-resilience-pattern/SKILL.md +60 -0
- package/skills/java/java-resilience-pattern/metadata.json +28 -0
- package/skills/java/java-resilience-pattern/references/aspect-order-and-composition.md +59 -0
- package/skills/java/java-resilience-pattern/references/isolation-and-timeout-budgets.md +57 -0
- package/skills/java/java-resilience-pattern/references/workflow-and-output.md +103 -0
- package/skills/java/java-spring-security/SKILL.md +60 -0
- package/skills/java/java-spring-security/metadata.json +26 -0
- package/skills/java/java-spring-security/references/actuator-endpoint-exposure-catalog.md +45 -0
- package/skills/java/java-spring-security/references/filter-chain-and-authorization-catalog.md +69 -0
- package/skills/java/java-spring-security/references/workflow-and-output.md +79 -0
- package/skills/java/java-test-architecture/SKILL.md +64 -0
- package/skills/java/java-test-architecture/metadata.json +28 -0
- package/skills/java/java-test-architecture/references/junit5-isolation-and-parallelism.md +59 -0
- package/skills/java/java-test-architecture/references/testcontainers-and-archunit-discipline.md +71 -0
- package/skills/java/java-test-architecture/references/workflow-and-output.md +101 -0
- package/skills/java/java-transaction-and-consistency/SKILL.md +60 -0
- package/skills/java/java-transaction-and-consistency/metadata.json +27 -0
- package/skills/java/java-transaction-and-consistency/references/dual-write-outbox-and-saga-patterns.md +125 -0
- package/skills/java/java-transaction-and-consistency/references/propagation-isolation-and-proxy-pitfalls.md +112 -0
- package/skills/java/java-transaction-and-consistency/references/workflow-and-output.md +94 -0
- package/skills/php/composer-audit-supply-chain-review/SKILL.md +108 -0
- package/skills/php/composer-audit-supply-chain-review/metadata.json +20 -0
- package/skills/php/composer-audit-supply-chain-review/references/abandoned-and-advisory-governance.md +30 -0
- package/skills/php/composer-audit-supply-chain-review/references/composer-audit-policy.md +35 -0
- package/skills/php/composer-audit-supply-chain-review/references/lockfile-integrity.md +27 -0
- package/skills/php/php-maestro/SKILL.md +51 -0
- package/skills/php/php-maestro/metadata.json +20 -0
- package/skills/php/php-maestro/references/hard-gates-and-escalation.md +67 -0
- package/skills/php/php-maestro/references/routing-and-dispatch.md +91 -0
- package/skills/php/php-runtime-eol-opcache-fpm-review/SKILL.md +109 -0
- package/skills/php/php-runtime-eol-opcache-fpm-review/metadata.json +19 -0
- package/skills/php/php-runtime-eol-opcache-fpm-review/references/opcache-production-config.md +91 -0
- package/skills/php/php-runtime-eol-opcache-fpm-review/references/php-fpm-pool-tuning.md +87 -0
- package/skills/php/php-runtime-eol-opcache-fpm-review/references/php-version-lifecycle.md +102 -0
- package/skills/php/php-session-upload-deserialization-review/SKILL.md +111 -0
- package/skills/php/php-session-upload-deserialization-review/metadata.json +20 -0
- package/skills/php/php-session-upload-deserialization-review/references/file-upload-security.md +119 -0
- package/skills/php/php-session-upload-deserialization-review/references/session-security.md +126 -0
- package/skills/php/php-session-upload-deserialization-review/references/unserialize-object-injection.md +121 -0
- package/skills/php/wordpress-rest-block-security-review/SKILL.md +106 -0
- package/skills/php/wordpress-rest-block-security-review/metadata.json +20 -0
- package/skills/php/wordpress-rest-block-security-review/references/dynamic-block-output-escaping.md +42 -0
- package/skills/php/wordpress-rest-block-security-review/references/input-sanitize-output-escape.md +52 -0
- package/skills/php/wordpress-rest-block-security-review/references/rest-api-permission-callback.md +48 -0
- package/tests/fixtures/java-maestro-routing/expected/001-happy-application-server-exit.json +6 -0
- package/tests/fixtures/java-maestro-routing/expected/002-happy-concurrency-and-virtual-thread.json +6 -0
- package/tests/fixtures/java-maestro-routing/expected/003-happy-container-and-kubernetes-readiness.json +6 -0
- package/tests/fixtures/java-maestro-routing/expected/004-happy-database-migration-safety.json +6 -0
- package/tests/fixtures/java-maestro-routing/expected/005-happy-deserialization-and-parser-security.json +6 -0
- package/tests/fixtures/java-maestro-routing/expected/006-happy-framework-production-readiness.json +6 -0
- package/tests/fixtures/java-maestro-routing/expected/007-happy-jdk-lifecycle-and-upgrade.json +6 -0
- package/tests/fixtures/java-maestro-routing/expected/008-happy-jpa-hibernate-performance.json +6 -0
- package/tests/fixtures/java-maestro-routing/expected/009-happy-jvm-performance-and-gc.json +6 -0
- package/tests/fixtures/java-maestro-routing/expected/010-happy-kafka-reliability.json +6 -0
- package/tests/fixtures/java-maestro-routing/expected/011-happy-resilience-pattern.json +6 -0
- package/tests/fixtures/java-maestro-routing/expected/012-happy-spring-security.json +6 -0
- package/tests/fixtures/java-maestro-routing/expected/013-happy-test-architecture.json +6 -0
- package/tests/fixtures/java-maestro-routing/expected/014-happy-transaction-and-consistency.json +6 -0
- package/tests/fixtures/java-maestro-routing/expected/adv-ambiguous.json +4 -0
- package/tests/fixtures/java-maestro-routing/expected/adv-instruction-injection.json +6 -0
- package/tests/fixtures/java-maestro-routing/expected/adv-persona-replacement.json +6 -0
- package/tests/fixtures/java-maestro-routing/expected/adv-secrets-bait.json +6 -0
- package/tests/fixtures/java-maestro-routing/inputs/001-happy-application-server-exit.json +7 -0
- package/tests/fixtures/java-maestro-routing/inputs/002-happy-concurrency-and-virtual-thread.json +7 -0
- package/tests/fixtures/java-maestro-routing/inputs/003-happy-container-and-kubernetes-readiness.json +7 -0
- package/tests/fixtures/java-maestro-routing/inputs/004-happy-database-migration-safety.json +7 -0
- package/tests/fixtures/java-maestro-routing/inputs/005-happy-deserialization-and-parser-security.json +7 -0
- package/tests/fixtures/java-maestro-routing/inputs/006-happy-framework-production-readiness.json +7 -0
- package/tests/fixtures/java-maestro-routing/inputs/007-happy-jdk-lifecycle-and-upgrade.json +7 -0
- package/tests/fixtures/java-maestro-routing/inputs/008-happy-jpa-hibernate-performance.json +7 -0
- package/tests/fixtures/java-maestro-routing/inputs/009-happy-jvm-performance-and-gc.json +7 -0
- package/tests/fixtures/java-maestro-routing/inputs/010-happy-kafka-reliability.json +7 -0
- package/tests/fixtures/java-maestro-routing/inputs/011-happy-resilience-pattern.json +7 -0
- package/tests/fixtures/java-maestro-routing/inputs/012-happy-spring-security.json +7 -0
- package/tests/fixtures/java-maestro-routing/inputs/013-happy-test-architecture.json +7 -0
- package/tests/fixtures/java-maestro-routing/inputs/014-happy-transaction-and-consistency.json +7 -0
- package/tests/fixtures/java-maestro-routing/inputs/adv-ambiguous.json +7 -0
- package/tests/fixtures/java-maestro-routing/inputs/adv-instruction-injection.json +7 -0
- package/tests/fixtures/java-maestro-routing/inputs/adv-persona-replacement.json +7 -0
- package/tests/fixtures/java-maestro-routing/inputs/adv-secrets-bait.json +7 -0
- package/tests/fixtures/java-maestro-routing/taxonomy.json +177 -0
- package/tests/fixtures/php-maestro-routing/expected/001-happy-application-security.json +6 -0
- package/tests/fixtures/php-maestro-routing/expected/002-happy-composer-supply-chain.json +6 -0
- package/tests/fixtures/php-maestro-routing/expected/003-happy-runtime-upgrade-readiness.json +6 -0
- package/tests/fixtures/php-maestro-routing/expected/004-happy-wordpress-security.json +6 -0
- package/tests/fixtures/php-maestro-routing/expected/005-happy-unserialize-session.json +6 -0
- package/tests/fixtures/php-maestro-routing/expected/006-happy-fpm-opcache.json +6 -0
- package/tests/fixtures/php-maestro-routing/expected/007-happy-composer-audit.json +6 -0
- package/tests/fixtures/php-maestro-routing/expected/008-happy-wp-permission-callback.json +6 -0
- package/tests/fixtures/php-maestro-routing/expected/adv-ambiguous.json +4 -0
- package/tests/fixtures/php-maestro-routing/expected/adv-instruction-injection.json +6 -0
- package/tests/fixtures/php-maestro-routing/expected/adv-liveguard-db-migration-prod.json +4 -0
- package/tests/fixtures/php-maestro-routing/expected/adv-liveguard-deploy-prod.json +4 -0
- package/tests/fixtures/php-maestro-routing/expected/adv-persona-replacement.json +6 -0
- package/tests/fixtures/php-maestro-routing/expected/adv-secrets-bait.json +7 -0
- package/tests/fixtures/php-maestro-routing/inputs/001-happy-application-security.json +7 -0
- package/tests/fixtures/php-maestro-routing/inputs/002-happy-composer-supply-chain.json +7 -0
- package/tests/fixtures/php-maestro-routing/inputs/003-happy-runtime-upgrade-readiness.json +7 -0
- package/tests/fixtures/php-maestro-routing/inputs/004-happy-wordpress-security.json +7 -0
- package/tests/fixtures/php-maestro-routing/inputs/005-happy-unserialize-session.json +7 -0
- package/tests/fixtures/php-maestro-routing/inputs/006-happy-fpm-opcache.json +7 -0
- package/tests/fixtures/php-maestro-routing/inputs/007-happy-composer-audit.json +7 -0
- package/tests/fixtures/php-maestro-routing/inputs/008-happy-wp-permission-callback.json +7 -0
- package/tests/fixtures/php-maestro-routing/inputs/adv-ambiguous.json +7 -0
- package/tests/fixtures/php-maestro-routing/inputs/adv-instruction-injection.json +7 -0
- package/tests/fixtures/php-maestro-routing/inputs/adv-liveguard-db-migration-prod.json +7 -0
- package/tests/fixtures/php-maestro-routing/inputs/adv-liveguard-deploy-prod.json +7 -0
- package/tests/fixtures/php-maestro-routing/inputs/adv-persona-replacement.json +7 -0
- package/tests/fixtures/php-maestro-routing/inputs/adv-secrets-bait.json +7 -0
- package/tests/fixtures/php-maestro-routing/taxonomy.json +69 -0
- package/tests/validate-catalog.py +2 -0
|
@@ -32,7 +32,7 @@ Live-guard agents enforce approval, target confirmation, evidence capture, and r
|
|
|
32
32
|
|
|
33
33
|
## Where the agents live
|
|
34
34
|
|
|
35
|
-
Agent specs and adapters are part of the [Vanguard Frontier Agentic](https://github.com/Raishin/vanguard-frontier-agentic) marketplace. For this provider, see `agents/generic/` in that repository.
|
|
35
|
+
Agent specs and adapters are part of the [Vanguard Frontier Agentic](https://github.com/Raishin/vanguard-frontier-agentic) marketplace. For this provider, see `agents/generic/` in that repository. 10 of 11 agents in this provider ship a Kiro adapter; the rest provide steering context only.
|
|
36
36
|
|
|
37
37
|
## Companion install paths
|
|
38
38
|
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "vanguard-java"
|
|
3
|
+
displayName: "Vanguard Frontier — Java"
|
|
4
|
+
description: "Curated Java agents for java application server exit, java concurrency and virtual thread, java container and kubernetes readiness, java database migration safety. Routes via java-maestro-agent to specialist agents based on task scope. Static review only; no live mutations."
|
|
5
|
+
keywords: ["java", "static-review", "configuration-audit", "best-practices"]
|
|
6
|
+
author: "Raishin"
|
|
7
|
+
---
|
|
8
|
+
# Vanguard Frontier — Java
|
|
9
|
+
|
|
10
|
+
Curated Java agents for java application server exit, java concurrency and virtual thread, java container and kubernetes readiness, java database migration safety. Routes via java-maestro-agent to specialist agents based on task scope. Static review only; no live mutations.
|
|
11
|
+
|
|
12
|
+
## When to engage this Power
|
|
13
|
+
|
|
14
|
+
Activate when the task references Java services, resources, or operations. Do not activate on unrelated requests — narrow keyword matching is required to avoid false activations (Kiro Powers convention).
|
|
15
|
+
|
|
16
|
+
## Routing pattern
|
|
17
|
+
|
|
18
|
+
- **`java-maestro-agent`** — classifies and routes the task to the right specialist
|
|
19
|
+
|
|
20
|
+
Use the maestro as the entry point: classify the task, then dispatch to one specialist or a parallel team of specialists. Never have the maestro itself execute a live mutation.
|
|
21
|
+
|
|
22
|
+
## Live-guard agents (gate_mode only)
|
|
23
|
+
|
|
24
|
+
- *(none — this provider has no live-mutation guards in the catalog)*
|
|
25
|
+
|
|
26
|
+
Live-guard agents enforce approval, target confirmation, evidence capture, and rollback plans before executing a mutation. They are never auto-dispatched — the maestro must place them in `live-guard-gate` or `runtime-evidence-gate` mode.
|
|
27
|
+
|
|
28
|
+
## Invariants
|
|
29
|
+
|
|
30
|
+
- Route all tasks through java-maestro-agent for proper classification and dispatch.
|
|
31
|
+
- Static review only -- agents analyze configuration and provide findings without mutating live systems.
|
|
32
|
+
|
|
33
|
+
## Where the agents live
|
|
34
|
+
|
|
35
|
+
Agent specs and adapters are part of the [Vanguard Frontier Agentic](https://github.com/Raishin/vanguard-frontier-agentic) marketplace. For this provider, see `agents/java/` in that repository. All 15 agents in this provider ship a Kiro adapter (`harnesses/kiro-ide.agent.md`, `kiro-cli.agent.json`).
|
|
36
|
+
|
|
37
|
+
## Companion install paths
|
|
38
|
+
|
|
39
|
+
- **Claude Code:** `/plugin marketplace add Raishin/vanguard-frontier-agentic` then `/plugin install vanguard-frontier-agentic@vanguard-frontier-agentic`
|
|
40
|
+
- **Codex / Copilot / Cursor / Gemini CLI / Kiro (file export):** `npx vfa-export-agents --platform <harness> --provider java --repo .`
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "vanguard-php"
|
|
3
|
+
displayName: "Vanguard Frontier — Php"
|
|
4
|
+
description: "Curated Php agents for composer supply chain, php application security, php runtime upgrade readiness, wordpress security. Routes via php-maestro-agent to specialist agents based on task scope. Static review only; no live mutations."
|
|
5
|
+
keywords: ["php", "static-review", "configuration-audit", "best-practices"]
|
|
6
|
+
author: "Raishin"
|
|
7
|
+
---
|
|
8
|
+
# Vanguard Frontier — Php
|
|
9
|
+
|
|
10
|
+
Curated Php agents for composer supply chain, php application security, php runtime upgrade readiness, wordpress security. Routes via php-maestro-agent to specialist agents based on task scope. Static review only; no live mutations.
|
|
11
|
+
|
|
12
|
+
## When to engage this Power
|
|
13
|
+
|
|
14
|
+
Activate when the task references Php services, resources, or operations. Do not activate on unrelated requests — narrow keyword matching is required to avoid false activations (Kiro Powers convention).
|
|
15
|
+
|
|
16
|
+
## Routing pattern
|
|
17
|
+
|
|
18
|
+
- **`php-maestro-agent`** — classifies and routes the task to the right specialist
|
|
19
|
+
|
|
20
|
+
Use the maestro as the entry point: classify the task, then dispatch to one specialist or a parallel team of specialists. Never have the maestro itself execute a live mutation.
|
|
21
|
+
|
|
22
|
+
## Live-guard agents (gate_mode only)
|
|
23
|
+
|
|
24
|
+
- *(none — this provider has no live-mutation guards in the catalog)*
|
|
25
|
+
|
|
26
|
+
Live-guard agents enforce approval, target confirmation, evidence capture, and rollback plans before executing a mutation. They are never auto-dispatched — the maestro must place them in `live-guard-gate` or `runtime-evidence-gate` mode.
|
|
27
|
+
|
|
28
|
+
## Invariants
|
|
29
|
+
|
|
30
|
+
- Route all tasks through php-maestro-agent for proper classification and dispatch.
|
|
31
|
+
- Static review only -- agents analyze configuration and provide findings without mutating live systems.
|
|
32
|
+
|
|
33
|
+
## Where the agents live
|
|
34
|
+
|
|
35
|
+
Agent specs and adapters are part of the [Vanguard Frontier Agentic](https://github.com/Raishin/vanguard-frontier-agentic) marketplace. For this provider, see `agents/php/` in that repository. All 5 agents in this provider ship a Kiro adapter (`harnesses/kiro-ide.agent.md`, `kiro-cli.agent.json`).
|
|
36
|
+
|
|
37
|
+
## Companion install paths
|
|
38
|
+
|
|
39
|
+
- **Claude Code:** `/plugin marketplace add Raishin/vanguard-frontier-agentic` then `/plugin install vanguard-frontier-agentic@vanguard-frontier-agentic`
|
|
40
|
+
- **Codex / Copilot / Cursor / Gemini CLI / Kiro (file export):** `npx vfa-export-agents --platform <harness> --provider php --repo .`
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"generic",
|
|
53
53
|
"frontend",
|
|
54
54
|
"dotnet",
|
|
55
|
+
"java",
|
|
55
56
|
"hr",
|
|
56
57
|
"legal",
|
|
57
58
|
"salesforce",
|
|
@@ -61,7 +62,23 @@
|
|
|
61
62
|
"sap",
|
|
62
63
|
"microsoft",
|
|
63
64
|
"databricks",
|
|
64
|
-
"snowflake"
|
|
65
|
+
"snowflake",
|
|
66
|
+
"php",
|
|
67
|
+
"kyverno",
|
|
68
|
+
"istio",
|
|
69
|
+
"argocd",
|
|
70
|
+
"cilium",
|
|
71
|
+
"opentelemetry",
|
|
72
|
+
"prometheus",
|
|
73
|
+
"falco",
|
|
74
|
+
"sigstore",
|
|
75
|
+
"cert-manager",
|
|
76
|
+
"fluxcd",
|
|
77
|
+
"backstage",
|
|
78
|
+
"velero",
|
|
79
|
+
"nvidia",
|
|
80
|
+
"claude",
|
|
81
|
+
"marketing"
|
|
65
82
|
]
|
|
66
83
|
},
|
|
67
84
|
"harnesses": {
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"generic",
|
|
46
46
|
"frontend",
|
|
47
47
|
"dotnet",
|
|
48
|
+
"java",
|
|
48
49
|
"hr",
|
|
49
50
|
"legal",
|
|
50
51
|
"salesforce",
|
|
@@ -52,7 +53,32 @@
|
|
|
52
53
|
"sap",
|
|
53
54
|
"microsoft",
|
|
54
55
|
"databricks",
|
|
55
|
-
"snowflake"
|
|
56
|
+
"snowflake",
|
|
57
|
+
"php",
|
|
58
|
+
"kyverno",
|
|
59
|
+
"istio",
|
|
60
|
+
"argocd",
|
|
61
|
+
"cilium",
|
|
62
|
+
"opentelemetry",
|
|
63
|
+
"prometheus",
|
|
64
|
+
"falco",
|
|
65
|
+
"sigstore",
|
|
66
|
+
"cert-manager",
|
|
67
|
+
"fluxcd",
|
|
68
|
+
"backstage",
|
|
69
|
+
"velero",
|
|
70
|
+
"alibaba",
|
|
71
|
+
"huawei",
|
|
72
|
+
"ovhcloud",
|
|
73
|
+
"ionos",
|
|
74
|
+
"scaleway",
|
|
75
|
+
"hetzner",
|
|
76
|
+
"contabo",
|
|
77
|
+
"nvidia",
|
|
78
|
+
"claude",
|
|
79
|
+
"marketing",
|
|
80
|
+
"accounting",
|
|
81
|
+
"finance"
|
|
56
82
|
]
|
|
57
83
|
},
|
|
58
84
|
"harnesses": {
|
|
@@ -56,7 +56,7 @@ const taxonomy = [
|
|
|
56
56
|
{ category: 'Infrastructure as Code', providers: ['terraform'] },
|
|
57
57
|
{ category: 'AI & Compute', providers: ['nvidia'] },
|
|
58
58
|
{ category: 'Frontend & Web', providers: ['frontend'] },
|
|
59
|
-
{ category: 'Developer Platforms', providers: ['backstage', 'dotnet', 'generic', 'multi-cloud'] },
|
|
59
|
+
{ category: 'Developer Platforms', providers: ['backstage', 'dotnet', 'java', 'php', 'generic', 'multi-cloud'] },
|
|
60
60
|
{ category: 'ERP & Finance', providers: ['netsuite', 'accounting', 'finance', 'sap'] },
|
|
61
61
|
{ category: 'Business Functions', providers: ['salesforce', 'legal', 'hr', 'marketing'] },
|
|
62
62
|
{ category: 'Microsoft 365 & Dynamics 365', providers: ['microsoft'] },
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: revenue-critical-journey-integrity-review
|
|
3
|
+
description: Use this skill to review the cross-tier seams of revenue-critical journeys — checkout, payment submission, account creation, and login — for idempotency of money-moving and account-creating requests, server-side re-validation of client-enforced rules, webhook duplicate/out-of-order handling, retry-storm safeguards, and PCI DSS SAQ-scope judgment. Use when a request crosses client-to-server, system-to-processor, or webhook-back-into-system and a failure at that seam would double-charge, double-fulfill, bypass a required step, drop revenue, or misjudge PCI scope. Static review only; it does not execute payment flows and its PCI SAQ output is an advisory scoping opinion, never a compliance attestation.
|
|
4
|
+
allowed-tools: Read Grep Glob
|
|
5
|
+
metadata:
|
|
6
|
+
author: "github: Raishin"
|
|
7
|
+
version: "0.1.0"
|
|
8
|
+
updated: "2026-07-16"
|
|
9
|
+
category: resilience
|
|
10
|
+
lifecycle: experimental
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Revenue-Critical Journey Integrity Review
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Review the seams of revenue-critical journeys — the points where a request crosses from client to server, from your system to a payment processor, or from a webhook back into your system — so a journey that looks correct in any one tier does not break where the tiers meet. The dominant seam failures are non-idempotent money-moving requests, client-enforced rules the server never re-validates, webhook consumers that assume exactly-once/in-order delivery, unbounded retries that become retry storms, and PCI DSS SAQ-scope misjudgment.
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
Use this skill when the user asks to:
|
|
22
|
+
|
|
23
|
+
- review whether a checkout, payment, subscription, coupon, or account-creation request is safe to retry (idempotency at money-moving seams),
|
|
24
|
+
- confirm the server re-validates rules the client enforces (price, discount, quantity, eligibility, step-completion),
|
|
25
|
+
- review a webhook consumer for duplicate-delivery and out-of-order handling,
|
|
26
|
+
- review retry/backoff/circuit-breaker safety at a revenue-critical seam across web, mobile, or backend consumers,
|
|
27
|
+
- get an advisory PCI DSS SAQ-scope opinion for the payment integration model actually in the code.
|
|
28
|
+
|
|
29
|
+
## When not to use
|
|
30
|
+
|
|
31
|
+
Do not use this skill for:
|
|
32
|
+
|
|
33
|
+
- tier-internal review that an owning specialist owns — DOM XSS/CSP and client injection (use the frontend security review), backend authorization-model design, mobile-platform specifics, or infrastructure hardening. This skill reviews the seam, not the interior; hand tier-internal findings to the owning agent.
|
|
34
|
+
- issuing a PCI compliance attestation, signing an SAQ, or acting as an assessment of record. SAQ-scope output here is advisory only.
|
|
35
|
+
- any live exercise of a payment system — executing flows, replaying webhooks, or sending requests to live/sandbox/staging processors. This skill is static review only.
|
|
36
|
+
|
|
37
|
+
## Preconditions
|
|
38
|
+
|
|
39
|
+
- The money-moving and account-creating request paths in scope, across whichever tiers exist.
|
|
40
|
+
- The webhook consumer code and the event types it acts on.
|
|
41
|
+
- The retry configuration (max attempts, backoff, jitter, timeout, circuit breaker) for the seams in scope.
|
|
42
|
+
- The payment integration model (redirect, iframe/hosted fields, direct post/custom form) if a SAQ-scope opinion is requested.
|
|
43
|
+
- The processor/SDK and version in scope, so idempotency and webhook guidance matches the real API surface.
|
|
44
|
+
|
|
45
|
+
## Lean operating rules
|
|
46
|
+
|
|
47
|
+
- Confirm retry/replay reachability before flagging an idempotency gap; a genuinely non-retryable internal call is not a finding.
|
|
48
|
+
- Treat the server as the only enforcement boundary; a client-only check is UX, not enforcement.
|
|
49
|
+
- Require webhook consumers to be both idempotent (dedupe by event id or business key) and order-tolerant.
|
|
50
|
+
- Require bounded, backoff-with-jitter retries with a timeout at every revenue seam; add a circuit breaker or dead-letter path for backend/queue consumers.
|
|
51
|
+
- Give a PCI SAQ-scope opinion only against the integration model present in the code, name the candidate SAQ, and label it advisory.
|
|
52
|
+
- Never request, echo, store, or reproduce cardholder data, API keys, session tokens, or webhook signing secrets; redact-and-flag any that appear.
|
|
53
|
+
- Label every claim `repo evidence`, `context7-grounded`, `documentation-based`, or `inference`.
|
|
54
|
+
|
|
55
|
+
## Context7 documentation protocol
|
|
56
|
+
|
|
57
|
+
Processor idempotency semantics, webhook retry windows, event ordering, and signature verification are version-sensitive. The bundled [official sources](references/official-sources.md) are the versioned ground truth for this skill: every processor-specific claim must trace to them and is labeled `documentation-based`, and the ledger records the version and last-verified date so a claim can be re-checked. This static-review skill's own tool grant is read-only (`Read Grep Glob`); when the invoking harness additionally provides Context7 or official-documentation tools, use them to confirm the current behavior against the bundled snapshot (`resolve-library-id` then `query-docs`, labeled `context7-grounded`) and to cover a processor the bundle does not. For a processor with no bundled or fetched coverage, say so and treat the claim as `inference` — never rely on memorized API details.
|
|
58
|
+
|
|
59
|
+
## Workflow
|
|
60
|
+
|
|
61
|
+
Follow the step-by-step review and output contract in [workflow and output](references/workflow-and-output.md). At a high level: (1) map the seams in scope; (2) for each money-moving/account-creating request, check idempotency against reachable retry/replay; (3) check server re-validation of every client-enforced rule; (4) check webhook consumers for idempotency + order-tolerance; (5) check retry safety; (6) if requested, form the advisory SAQ-scope opinion; (7) emit findings with evidence tiers and tier-internal handoffs.
|
|
62
|
+
|
|
63
|
+
## Decision gates
|
|
64
|
+
|
|
65
|
+
- Block only on a seam failure with a demonstrated reachable retry/replay/bypass path.
|
|
66
|
+
- Every processor-specific claim is Context7-grounded or documentation-based, never memory.
|
|
67
|
+
- Every SAQ-scope statement is advisory and tied to the integration model in the code.
|
|
68
|
+
- Every tier-internal finding is handed off, not adjudicated.
|
|
69
|
+
|
|
70
|
+
## Evidence classification
|
|
71
|
+
|
|
72
|
+
Label each finding `repo evidence` (seen in the code), `context7-grounded` (current provider docs via Context7), `documentation-based` (official docs), or `inference`. Documentation never proves a specific deployment's live behavior — say so.
|
|
73
|
+
|
|
74
|
+
## Security and privacy constraints
|
|
75
|
+
|
|
76
|
+
Static review only. Never transmit, request, store, or reproduce cardholder data (PAN/CVV), API keys, session tokens, or webhook signing secrets; treat any such string as a redact-and-flag finding. Never execute payment flows or contact any live/sandbox/staging payment system. PCI SAQ-scope output is an advisory opinion, never an attestation.
|
|
77
|
+
|
|
78
|
+
## Escalation conditions
|
|
79
|
+
|
|
80
|
+
Escalate to incident response on any evidence of a live failure (duplicate charges in logs, replayed webhooks, retry amplification). Escalate SAQ-scope opinions to the merchant's compliance owner or a QSA as advisory input.
|
|
81
|
+
|
|
82
|
+
## References
|
|
83
|
+
|
|
84
|
+
Load these only when needed:
|
|
85
|
+
|
|
86
|
+
- [Workflow and output](references/workflow-and-output.md) — the end-to-end review steps and the finding/output contract.
|
|
87
|
+
- [Idempotency and safe retries](references/idempotency-and-safe-retries.md) — idempotency keys at money-moving seams and bounded backoff-with-jitter retry design.
|
|
88
|
+
- [Webhook delivery: dedup and ordering](references/webhook-delivery-dedup-ordering.md) — duplicate-delivery and out-of-order handling for webhook consumers.
|
|
89
|
+
- [Server-side re-validation and the client trust boundary](references/server-side-revalidation-trust-boundary.md) — why the server is the only enforcement boundary and what to re-check.
|
|
90
|
+
- [PCI DSS SAQ scope boundaries](references/pci-saq-scope-boundaries.md) — SAQ A vs A-EP vs D by integration model and the 6.4.3/11.6.1 payment-page expectations.
|
|
91
|
+
- [Official sources](references/official-sources.md) — the primary-source ledger for every claim in this skill.
|
|
92
|
+
|
|
93
|
+
## Response minimum
|
|
94
|
+
|
|
95
|
+
Return, at minimum:
|
|
96
|
+
|
|
97
|
+
- the seam(s) in scope and, per finding, the failure class and evidence tier;
|
|
98
|
+
- the cross-tier failure narrative (how a retry, replay, or bypass reaches a wrong outcome);
|
|
99
|
+
- concrete remediation and an exact verification step;
|
|
100
|
+
- the advisory SAQ-scope opinion when requested, labeled advisory;
|
|
101
|
+
- tier-internal handoffs and any incident-response escalation.
|
|
102
|
+
|
|
103
|
+
## Anti-goals
|
|
104
|
+
|
|
105
|
+
- Do not expand into tier-internal review; own the seam, hand off the interior.
|
|
106
|
+
- Do not present a SAQ-scope opinion as a compliance determination.
|
|
107
|
+
- Do not exercise any live payment system or reproduce any secret or PAN.
|
|
108
|
+
- Do not assert processor behavior from memory.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "revenue-critical-journey-integrity-review",
|
|
3
|
+
"name": "Revenue-Critical Journey Integrity Review",
|
|
4
|
+
"type": "skill",
|
|
5
|
+
"provider": "generic",
|
|
6
|
+
"harnesses": [
|
|
7
|
+
"claude-code",
|
|
8
|
+
"cursor",
|
|
9
|
+
"codex",
|
|
10
|
+
"gemini",
|
|
11
|
+
"kiro",
|
|
12
|
+
"other"
|
|
13
|
+
],
|
|
14
|
+
"summary": "Skill for reviewing the cross-tier seams of revenue-critical journeys (checkout, payment, account creation, login): idempotency of money-moving and account-creating requests, server-side re-validation of client-enforced rules, webhook duplicate/out-of-order handling, retry-storm safeguards, and advisory PCI DSS SAQ-scope judgment for the integration model in use.",
|
|
15
|
+
"source_type": "original",
|
|
16
|
+
"official_docs": [
|
|
17
|
+
"https://docs.stripe.com/api/idempotent_requests",
|
|
18
|
+
"https://docs.stripe.com/webhooks/best-practices",
|
|
19
|
+
"https://www.pcisecuritystandards.org/faqs/1443/",
|
|
20
|
+
"https://blog.pcisecuritystandards.org/important-updates-announced-for-merchants-validating-to-self-assessment-questionnaire-a",
|
|
21
|
+
"https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_mitigate_interaction_failure_limit_retries.html",
|
|
22
|
+
"https://baymard.com/lists/cart-abandonment-rate"
|
|
23
|
+
],
|
|
24
|
+
"security_notes": "Static-review-only skill: Read/Grep/Glob, no execution and no network egress to any payment system. Never requests, transmits, stores, or reproduces cardholder data (PAN/CVV), API keys, session tokens, or webhook signing secrets — any such string is a redact-and-flag finding, never echoed. PCI DSS SAQ-scope output is an advisory scoping opinion to inform a Qualified Security Assessor or the merchant's own validation, never a compliance attestation or assessment of record. Never executes payment flows or replays webhooks against live, sandbox, or staging systems.",
|
|
25
|
+
"last_verified": "2026-07-16",
|
|
26
|
+
"path": "skills/cross-functional/revenue-critical-journey-integrity-review",
|
|
27
|
+
"author": "github: Raishin",
|
|
28
|
+
"version": "0.1.0"
|
|
29
|
+
}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# Idempotency and safe retries
|
|
2
|
+
|
|
3
|
+
## Why this matters
|
|
4
|
+
|
|
5
|
+
Every money-moving or account-creating request that can be retried — by a client
|
|
6
|
+
double-submit, a gateway timeout-then-retry, or a user hitting back/refresh — is a
|
|
7
|
+
duplicate-charge or duplicate-account risk unless the seam is explicitly made safe
|
|
8
|
+
to repeat. This is a seam failure, not a tier-internal bug: the client, server,
|
|
9
|
+
and processor can each look correct in isolation while the combination
|
|
10
|
+
double-charges a customer. Idempotency keys close the money-moving side;
|
|
11
|
+
bounded backoff-with-jitter retries close the availability side by preventing a
|
|
12
|
+
single downstream blip from becoming a self-inflicted retry storm.
|
|
13
|
+
|
|
14
|
+
## Where an idempotency mechanism is required
|
|
15
|
+
|
|
16
|
+
An idempotency mechanism is required at any request that both (a) moves money
|
|
17
|
+
or creates a billable resource (create charge, create payment intent, create
|
|
18
|
+
subscription, apply a coupon), and (b) is reachable by at least one
|
|
19
|
+
retry/replay path: client double-submit (double click, back-button resubmit),
|
|
20
|
+
gateway or SDK-level automatic retry on connection error/timeout, or a user
|
|
21
|
+
manually resubmitting after an ambiguous response.
|
|
22
|
+
|
|
23
|
+
A genuinely non-retryable internal call (no client retry, no gateway retry
|
|
24
|
+
configured, no user-facing resubmit path) is not a finding — confirm
|
|
25
|
+
reachability before flagging, per the skill's lean operating rules.
|
|
26
|
+
|
|
27
|
+
## NORMATIVE: what Stripe requires and provides
|
|
28
|
+
|
|
29
|
+
Per Stripe's API reference on idempotent requests (`documentation-based`;
|
|
30
|
+
Context7 was attempted first and returned a monthly-quota error, so this was
|
|
31
|
+
grounded via direct WebFetch of the official page):
|
|
32
|
+
|
|
33
|
+
- A client generates and attaches an idempotency key to a `POST` request (e.g.
|
|
34
|
+
create charge, create customer). This lets the request be retried safely
|
|
35
|
+
after a connection error without performing the operation twice.
|
|
36
|
+
- Stripe caches the first response for that key — including a 5xx error
|
|
37
|
+
response — for **at least 24 hours**.
|
|
38
|
+
- A replay with the same key returns the cached first result rather than
|
|
39
|
+
re-executing the operation.
|
|
40
|
+
- If a retry sends the same key with **different parameters** than the
|
|
41
|
+
original request, Stripe returns an error rather than silently applying the
|
|
42
|
+
new parameters. The key scopes to the exact original request, not just the
|
|
43
|
+
endpoint.
|
|
44
|
+
|
|
45
|
+
These are processor-documented behaviors, not general recommendations — do not
|
|
46
|
+
generalize them to a processor without checking that processor's own docs.
|
|
47
|
+
|
|
48
|
+
## RECOMMENDATION: how to implement idempotency at your own seams
|
|
49
|
+
|
|
50
|
+
For a seam the merchant's own server owns (e.g. an internal "create order" call
|
|
51
|
+
in front of the processor call), the same pattern applies as a design
|
|
52
|
+
recommendation, not a processor mandate:
|
|
53
|
+
|
|
54
|
+
- **Client-generated key** — a UUID generated once per logical operation
|
|
55
|
+
attempt, not per HTTP retry, sent in a header or body field.
|
|
56
|
+
- **Server-side unique constraint** — the server stores the key in a table
|
|
57
|
+
with a unique constraint (e.g. a unique index on `idempotency_key`)
|
|
58
|
+
alongside the operation's result. The insert-or-conflict on that constraint
|
|
59
|
+
is the correctness mechanism, not an application-level `SELECT`-then-`INSERT`
|
|
60
|
+
check, which races under concurrent retries.
|
|
61
|
+
- **Return the cached first result on replay** — on a unique-constraint
|
|
62
|
+
conflict, look up the stored result for that key and return it unchanged,
|
|
63
|
+
rather than re-running the operation.
|
|
64
|
+
- **Scope keys to exact request parameters**, mirroring Stripe's behavior:
|
|
65
|
+
reject (or explicitly document accepting) a replay whose parameters differ
|
|
66
|
+
from the original.
|
|
67
|
+
|
|
68
|
+
## Reviewer evidence criteria
|
|
69
|
+
|
|
70
|
+
For each money-moving or account-creating request in scope, check for:
|
|
71
|
+
|
|
72
|
+
- A client-generated idempotency key attached to the request (header or body
|
|
73
|
+
field), generated once per user-intent attempt, not regenerated on every
|
|
74
|
+
retry.
|
|
75
|
+
- A server-side store (table/cache) keyed on that value with a **unique
|
|
76
|
+
constraint**, not merely an in-memory or best-effort check.
|
|
77
|
+
- Confirmation that a replay with the same key returns the original stored
|
|
78
|
+
result rather than re-invoking the money-moving/account-creating operation.
|
|
79
|
+
- Confirmation that a replay with the same key but different parameters is
|
|
80
|
+
rejected or explicitly handled, not silently accepted.
|
|
81
|
+
- For calls that pass through to Stripe (or another processor) directly,
|
|
82
|
+
confirmation the processor's own idempotency-key parameter is used on the
|
|
83
|
+
outbound call, in addition to (not instead of) any client-facing key.
|
|
84
|
+
|
|
85
|
+
Absence of all of the above at a seam where retry/replay is reachable is a
|
|
86
|
+
blocking finding per the skill's decision gates.
|
|
87
|
+
|
|
88
|
+
## Retry design: bounded backoff, jitter, and the retry-storm failure
|
|
89
|
+
|
|
90
|
+
Retry-storm mitigation is not a processor-documented requirement — no
|
|
91
|
+
NORMATIVE claim applies here. It is a reliability-engineering recommendation
|
|
92
|
+
grounded in AWS's Well-Architected Reliability Pillar guidance
|
|
93
|
+
(`documentation-based`).
|
|
94
|
+
|
|
95
|
+
## RECOMMENDATION: bounded, backoff-with-jitter retries
|
|
96
|
+
|
|
97
|
+
Per AWS's Well-Architected Reliability Pillar guidance on limiting retries, a
|
|
98
|
+
**retry storm** occurs when retries compound across multiple layers of a stack
|
|
99
|
+
under failure — each layer retrying independently — so the failing service
|
|
100
|
+
receives new requests plus every layer's retries simultaneously, saturating it
|
|
101
|
+
and reducing availability further rather than recovering it. The documented
|
|
102
|
+
mitigation is client-side exponential backoff, jitter, and a maximum retry cap.
|
|
103
|
+
A second AWS primary source, the Builders' Library article "Timeouts, retries,
|
|
104
|
+
and backoff with jitter," covers the same pattern in more implementation depth
|
|
105
|
+
and may be cited alongside it.
|
|
106
|
+
|
|
107
|
+
For every retry path at a revenue-critical seam (web client, mobile client, or
|
|
108
|
+
backend/queue consumer), check for:
|
|
109
|
+
|
|
110
|
+
- **Maximum attempt cap** — retries stop after a fixed, small number of
|
|
111
|
+
attempts rather than continuing indefinitely.
|
|
112
|
+
- **Exponential backoff** — each successive retry waits longer than the last
|
|
113
|
+
(e.g. doubling), rather than retrying at a fixed interval.
|
|
114
|
+
- **Jitter** — the wait interval is randomized within a range rather than
|
|
115
|
+
deterministic, so many clients failing at once do not retry in lockstep and
|
|
116
|
+
re-collide on the recovering service.
|
|
117
|
+
- **Request timeout** — each attempt has an explicit timeout rather than
|
|
118
|
+
waiting indefinitely for a hung connection, so a stuck attempt does not
|
|
119
|
+
block the retry budget.
|
|
120
|
+
- **Circuit breaker or dead-letter path for backend/queue consumers** — once
|
|
121
|
+
failures exceed a threshold, the consumer stops retrying and either trips a
|
|
122
|
+
circuit (short-circuits further calls for a cooldown period) or routes the
|
|
123
|
+
message to a dead-letter queue, instead of retrying forever against a
|
|
124
|
+
downstream that is already down.
|
|
125
|
+
- **No cross-tier amplification** — if a mobile client retries and the API
|
|
126
|
+
gateway it calls also retries independently, confirm the combination is
|
|
127
|
+
still bounded; check the effective worst-case request multiplier across all
|
|
128
|
+
layers, not one layer's configuration in isolation.
|
|
129
|
+
|
|
130
|
+
Unbounded retries, retries with no backoff, or fixed-interval retries with no
|
|
131
|
+
jitter at a revenue-critical seam are retry-storm-risk findings, citable
|
|
132
|
+
against the AWS Well-Architected reference.
|
|
133
|
+
|
|
134
|
+
## Applicable versions
|
|
135
|
+
|
|
136
|
+
- Stripe idempotent-request behavior described here reflects the current
|
|
137
|
+
Stripe API reference page as of this review; idempotency-key retention
|
|
138
|
+
windows and behavior are processor-specific and must be re-verified against
|
|
139
|
+
the exact processor/SDK version in scope, per the skill's Context7
|
|
140
|
+
documentation protocol.
|
|
141
|
+
- The AWS Well-Architected Reliability Pillar guidance is framework-level
|
|
142
|
+
(not tied to a specific AWS service version) and applies to any retry
|
|
143
|
+
design, not only AWS-hosted systems.
|
|
144
|
+
- Documentation describes intended behavior only; whether a specific
|
|
145
|
+
deployment actually implements a unique constraint, a bounded backoff
|
|
146
|
+
policy, or a circuit breaker is an `inference` from code review, never
|
|
147
|
+
proven by the existence of these docs.
|
|
148
|
+
|
|
149
|
+
## Sources
|
|
150
|
+
|
|
151
|
+
- [Stripe API reference — Idempotent requests](https://docs.stripe.com/api/idempotent_requests) — supports the client-generated-key mechanism, the 24-hour-minimum cache of the first response (including 5xx), and the error-on-differing-parameters behavior.
|
|
152
|
+
- [AWS Well-Architected Reliability Pillar — Limit retries](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_mitigate_interaction_failure_limit_retries.html) — supports the retry-storm definition and the exponential-backoff/jitter/max-retry-cap mitigation.
|
|
153
|
+
- [AWS Builders' Library — Timeouts, retries, and backoff with jitter](https://aws.amazon.com/builders-library/timeouts-retries-and-backoff-with-jitter/) — supplementary primary source on backoff-with-jitter implementation.
|
|
154
|
+
|
|
155
|
+
Last verified: 2026-07-16.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Official sources
|
|
2
|
+
|
|
3
|
+
## Why this matters
|
|
4
|
+
|
|
5
|
+
Every processor-specific, standard-specific, or architecture-specific claim
|
|
6
|
+
this skill makes traces to exactly one official, primary source — never a
|
|
7
|
+
tutorial, a vendor marketing page, or press coverage. This ledger is that
|
|
8
|
+
trace: one row per source, the exact claim(s) it grounds, the source type,
|
|
9
|
+
the applicable version where one exists, and the verification date. A
|
|
10
|
+
reviewer citing this skill's guidance should be able to follow any claim back
|
|
11
|
+
to the primary document that supports it, and to see at a glance which
|
|
12
|
+
figures are verified fact versus flagged as unverified.
|
|
13
|
+
|
|
14
|
+
## NORMATIVE: every claim in this skill must resolve to a row below
|
|
15
|
+
|
|
16
|
+
No processor behavior, standard requirement, or architecture guidance may be
|
|
17
|
+
asserted in this skill's other reference files without a corresponding row
|
|
18
|
+
here. If Context7 is unavailable for a processor lookup, the fallback is the
|
|
19
|
+
processor's official documentation site, fetched directly and labeled
|
|
20
|
+
`documentation-based` rather than `context7-grounded` — never memory.
|
|
21
|
+
|
|
22
|
+
| Official URL | Claim(s) supported in this skill | Source type | Applicable version | Last verified |
|
|
23
|
+
|---|---|---|---|---|
|
|
24
|
+
| [Stripe API reference — Idempotent requests](https://docs.stripe.com/api/idempotent_requests) | A client-generated idempotency key lets a `POST` (e.g. create charge/customer) be safely retried after a connection error without duplicating the object or repeating the operation. Stripe caches the first response — including 5xx errors — for at least 24 hours per key, and returns an error if a retry sends parameters differing from the original request. | processor-docs | Current Stripe API (fetched directly; Context7 quota was exhausted — see uncertainty note below) | 2026-07-16 |
|
|
25
|
+
| [Stripe — Webhook best practices](https://docs.stripe.com/webhooks/best-practices) | Endpoints may receive the same event more than once. Live-mode automatic retries continue for up to 3 days with exponential backoff; sandbox retries 3 times over a few hours; manual dashboard resend is available within 15 days and CLI resend within 30 days, and a manual resend does not cancel Stripe's own automatic retry schedule. Endpoints are disabled after 3 days of continuous failure in live mode. Events can arrive out of order. Handlers must be idempotent, e.g. by logging processed event IDs and deduping on them. | processor-docs | Current Stripe webhooks documentation | 2026-07-16 |
|
|
26
|
+
| [PCI SSC FAQ 1443](https://www.pcisecuritystandards.org/faqs/1443/) | SAQs are scoped by how an entity stores, processes, and/or transmits cardholder data; each SAQ type (A, A-EP, B, B-IP, C, C-VT, D, …) has specific eligibility criteria and approved system types; a merchant must confirm SAQ eligibility with its acquirer or the payment brand before self-assessing. Integration model drives the candidate SAQ: fully outsourced redirect/iframe typically maps to SAQ A; direct-post/merchant-served forms typically map to SAQ A-EP; server-side storage/processing of cardholder data maps to SAQ D. | standard | PCI DSS SAQ program (current) | 2026-07-16 |
|
|
27
|
+
| [PCI SSC official blog — Important Updates Announced for Merchants Validating to Self-Assessment Questionnaire A](https://blog.pcisecuritystandards.org/important-updates-announced-for-merchants-validating-to-self-assessment-questionnaire-a) | PCI DSS v4.0.1 requirements 6.4.3 (payment-page script inventory, authorization, and integrity) and 11.6.1 (change-and-tamper-detection mechanism for payment pages) became effective 31 March 2025. Effective with the January 2025 SAQ A revision, PCI SSC removed 6.4.3, 11.6.1, and 12.3.1 from the SAQ A questionnaire itself and replaced them with an eligibility criterion requiring the merchant to attest its site "is not susceptible to attacks from scripts that could affect the merchant's e-commerce system(s)." Corrects the record: the underlying PCI DSS v4.0.1 requirements remain in effect — only the SAQ A checklist scope changed, contingent on the eligibility attestation. | standard | PCI DSS v4.0.1; January 2025 SAQ A revision | 2026-07-16 |
|
|
28
|
+
| [AWS Well-Architected Framework — Reliability Pillar: Mitigate interaction failure with retry limits](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_mitigate_interaction_failure_limit_retries.html) | A "retry storm" occurs when retries compound across multiple stack layers under failure, saturating the service with new-plus-retried requests and reducing availability. Documented mitigation is client-side exponential backoff, jitter, and a maximum retry cap. | cloud-architecture | AWS Well-Architected Framework (current) | 2026-07-16 |
|
|
29
|
+
| [AWS Builders' Library — Timeouts, retries, and backoff with jitter](https://aws.amazon.com/builders-library/timeouts-retries-and-backoff-with-jitter/) | Supplementary primary source for backoff-with-jitter retry design at revenue-critical seams; used only to reinforce the Reliability Pillar guidance above, not as a source of any additional unverified claim. | cloud-architecture | AWS Builders' Library (current) | 2026-07-16 |
|
|
30
|
+
| [OWASP Top 10:2021 — A01:2021 Broken Access Control](https://owasp.org/Top10/A01_2021-Broken_Access_Control/) | Grounds the general principle that enforcement decisions (authorization, business-rule checks) must not rely on client-side controls — the basis for treating the server as the only enforcement boundary for client-enforced rules (price, discount, quantity, eligibility, step-completion). | standard | OWASP Top 10:2021 | 2026-07-16 |
|
|
31
|
+
| [OWASP Cheat Sheet Series — Input Validation Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Input_Validation_Cheat_Sheet.html) | Grounds the requirement that input validation performed client-side is a usability aid, not a security control, and must be re-implemented server-side — supports the server-side re-validation guidance for client-enforced rules. | standard | OWASP Cheat Sheet Series (current) | 2026-07-16 |
|
|
32
|
+
| [Baymard Institute — Cart Abandonment Rate Statistics](https://baymard.com/lists/cart-abandonment-rate) | Aggregate of 50 published studies puts average documented e-commerce cart/checkout abandonment at 70.22%. In Baymard's own study of abandonment reasons, 18% of US online shoppers abandoned an order due to a "too long/complicated checkout process" and 19% cited being required to create an account. Used only as motivating business-pain figures, not as a technical claim. | research-publisher | Baymard Institute published aggregate (current) | 2026-07-16 |
|
|
33
|
+
|
|
34
|
+
## Known uncertainty / not encoded
|
|
35
|
+
|
|
36
|
+
- **Context7 quota fallback.** Per this skill's Context7 documentation
|
|
37
|
+
protocol, Stripe idempotency and webhook behavior should be resolved via
|
|
38
|
+
Context7 (`resolve-library-id` then `query-docs`) first. During grounding
|
|
39
|
+
for this skill, Context7 returned "Monthly quota reached" for the Stripe
|
|
40
|
+
lookup. The fallback used was a direct fetch of Stripe's official
|
|
41
|
+
documentation pages, and those claims are labeled `documentation-based`
|
|
42
|
+
rather than `context7-grounded` throughout this skill's reference files.
|
|
43
|
+
Re-attempt the Context7 path when quota is available and update the labels
|
|
44
|
+
above if a discrepancy is found.
|
|
45
|
+
- **UNVERIFIED — false-decline dollar estimates, do not encode as fact.**
|
|
46
|
+
Circulating industry estimates of e-commerce revenue lost to false payment
|
|
47
|
+
declines (e.g. figures on the order of ~$81B US / ~$443B global at a
|
|
48
|
+
~1.51% false-decline rate, and an older Javelin 2014 figure contrasting
|
|
49
|
+
~$118B in false declines against ~$9B in actual fraud losses) are known
|
|
50
|
+
only via secondary vendor reporting (press coverage citing PYMNTS, Datos
|
|
51
|
+
Insights, Cybersource, and Javelin research) and were **not** verified
|
|
52
|
+
against those primary reports for this skill. These figures must **not**
|
|
53
|
+
be stated as fact anywhere in this skill's guidance or findings. If
|
|
54
|
+
mentioned at all, they must be labeled explicitly as unverified,
|
|
55
|
+
directionally-credible industry estimates requiring primary-source
|
|
56
|
+
re-verification before use — never as a hard number backing a finding or
|
|
57
|
+
a business-pain claim.
|
|
58
|
+
|
|
59
|
+
## Sources
|
|
60
|
+
|
|
61
|
+
- [Stripe API reference — Idempotent requests](https://docs.stripe.com/api/idempotent_requests)
|
|
62
|
+
- [Stripe — Webhook best practices](https://docs.stripe.com/webhooks/best-practices)
|
|
63
|
+
- [PCI SSC FAQ 1443](https://www.pcisecuritystandards.org/faqs/1443/)
|
|
64
|
+
- [PCI SSC official blog — Important Updates Announced for Merchants Validating to Self-Assessment Questionnaire A](https://blog.pcisecuritystandards.org/important-updates-announced-for-merchants-validating-to-self-assessment-questionnaire-a)
|
|
65
|
+
- [AWS Well-Architected Framework — Reliability Pillar: Mitigate interaction failure with retry limits](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_mitigate_interaction_failure_limit_retries.html)
|
|
66
|
+
- [AWS Builders' Library — Timeouts, retries, and backoff with jitter](https://aws.amazon.com/builders-library/timeouts-retries-and-backoff-with-jitter/)
|
|
67
|
+
- [OWASP Top 10:2021 — A01:2021 Broken Access Control](https://owasp.org/Top10/A01_2021-Broken_Access_Control/)
|
|
68
|
+
- [OWASP Cheat Sheet Series — Input Validation Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Input_Validation_Cheat_Sheet.html)
|
|
69
|
+
- [Baymard Institute — Cart Abandonment Rate Statistics](https://baymard.com/lists/cart-abandonment-rate)
|
|
70
|
+
|
|
71
|
+
Last verified: 2026-07-16.
|