| name | adversarial-code-audit |
| description | Expert skill for comprehensive code reviews and adversarial verification in Rich Markdown Diff. Audits regex complexity (ReDoS), HTML/AST structural integrity, XSS/sanitization boundaries, multilingual/CJK handling, line mapping/Quick Edit offsets, and external renderer isolation to uncover similar and unknown edge-case vulnerabilities. |
Adversarial Code Audit & Deep Verification Skill
This skill guides rigorous code reviews, adversarial analysis, and deep verification for Rich Markdown Diff. It focuses on anticipating and preventing not just past bug regressions, but novel, subtle, and structurally similar edge cases and security vulnerabilities.
🎯 Core Philosophy: The Adversarial Mindset
When auditing or writing code in this repository, always assume:
- "Passing existing unit tests is merely table stakes, not proof of correctness."
- "Inputs will be adversarial, malformed, deeply nested, or unusually sized."
- "HTML and Markdown strings will contain deceptive characters, nested quotes, and overlapping tags."
- "Performance must be $O(N)$ linear time and deterministic—never $O(2^N)$ or unbounded."
🛡️ 6-Pillar Audit Checklist
When reviewing code changes or writing new features/parsers, audit against these 6 core pillars:
Pillar 1: Regex Complexity & ReDoS Defense (js/redos, js/bad-tag-filter)
Pillar 2: HTML Structural Integrity & Diff Nesting (htmldiff, AST)
Pillar 3: Webview Security & Sanitization Boundaries (js/incomplete-multi-character-sanitization, XSS)
Pillar 4: Line Mapping & Editor Offset Accuracy (data-line, Quick Edit)
Pillar 5: Multilingual (CJK) & Unicode Robustness
Pillar 6: Platform Isolation & External Dependencies
🧪 Adversarial Synthetic Test Patterns (Generate & Verify)
When testing new diff logic, generate test cases using these adversarial inputs:
Pattern A: ReDoS & Long Repeated Runs
<!-- Test A1: Deeply nested list repetitions -->
- Item 1
- Subitem 1
- Sub-subitem 1
${"- Item N\n - Subitem N\n".repeat(50)}
<!-- Test A2: Long run of sibling block elements inside diff -->
<ins>
${"<div><h3>Heading</h3><p>Paragraph</p></div>\n".repeat(40)}
</ins>
Pattern B: Deceptive HTML & Quoted Tag Names
<div title="</div>" data-template="<p class='nested'>">
Real content here
</div>
<div>
Before <div class="self-closing" /> After
</div>
Pattern C: Malicious Multi-Character Sequences
<scrip<script>alert(1)</script>t>
<script src="bad.js">
alert(1);
</script data-extra="true" >
Pattern D: Mixed CJK, Emoji & Special Characters
# 1. 概要 (Overview) 🚀
- 項目 1: これはテストです。
- 項目 2: 変更されたテキストです。[^1]
[^1]: 脚注テスト ↩︎ (Footnote backreference with emoji variant)
🔄 Step-by-Step Adversarial Audit Workflow
flowchart TD
A["1. Inspect Git Diff & New Code"] --> B["2. Scan for High-Risk Signals\n(Regex, Tag Stripping, HTML Slicing, Offsets)"]
B --> C["3. Formulate Adversarial Hypotheses\n(What malformed input could break this?)"]
C --> D["4. Construct Synthetic Edge-Case Tests"]
D --> E{"5. Run Test Suite\n(Unit, Integration, VRT)"}
E -- "Fails or Hangs" --> F["6. Identify Root Cause & Refactor Linearly"]
F --> D
E -- "All Pass" --> G["7. Static Security Audit (CodeQL / Linter)"]
G --> H["8. Final Approval & Merge Readiness"]
- Diff Inspection: Identify all modified regular expressions, string slicing operations, HTML replacement loops, and AST transformations.
- Signal Scanning: Check against the 6 Pillars above for code smells (e.g. nested regex loops, single-pass
.replace(), hardcoded ASCII ranges).
- Hypothesis Formulation: Ask: "How can an attacker or an unusual Markdown document freeze, inject, or misalign this code?"
- Test Execution: Write synthetic tests incorporating the Adversarial Test Patterns.
- Static Verification: Run
pnpm run compile && pnpm run lint and npx mocha ./out/test/unit/**/*.test.js.
- VRT & Security Verification: Run visual regression and CodeQL scanning before declaring completion.