Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .github/markdown-link-check-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"ignorePatterns": [
{
"pattern": "^https?://localhost"
},
{
"pattern": "^https?://127\\.0\\.0\\.1"
}
],
"httpHeaders": [
{
"urls": ["https://github.com", "https://raw.githubusercontent.com"],
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml"
}
}
],
"timeout": "10s",
"retryOn429": true,
"retryCount": 3,
"fallbackRetryDelay": "5s",
"aliveStatusCodes": [200, 201, 204, 301, 302, 303]
}
90 changes: 90 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: CI Quality Gates

on:
pull_request:
types: [opened, synchronize, reopened]
push:
branches: [master, main]

jobs:
validate-patterns:
runs-on: ubuntu-latest
name: Validate Documentation Patterns

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install dependencies
run: |
cd scripts
npm install

- name: Validate pattern documents
id: validate
run: |
node scripts/validate-patterns.js
env:
CI_MODE: strict

- name: Check markdown links
uses: gaurav-nelson/github-action-markdown-link-check@v1
with:
use-quiet-mode: 'yes'
config-file: '.github/markdown-link-check-config.json'
continue-on-error: true

- name: Markdown linting
uses: DavidAnson/markdownlint-cli2-action@v16
with:
globs: |
patterns/*.md
approaches/*.md
use-cases/*.md
vendors/*.md
continue-on-error: true

- name: Summary
if: always()
run: |
echo "## CI Quality Gates Summary" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
if [ -f validation-report.md ]; then
cat validation-report.md >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY
echo "✅ CI checks completed" >> $GITHUB_STEP_SUMMARY

validate-vendors:
runs-on: ubuntu-latest
name: Validate Vendor Documentation

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Check vendor neutrality
run: |
echo "Checking vendor documentation for neutrality..."
# Check for marketing language patterns
if grep -r -i -E "(best|leading|superior|unmatched|revolutionary)" vendors/*.md 2>/dev/null; then
echo "::warning::Found potential marketing language in vendor documentation"
fi

- name: Verify vendor cross-references
run: |
echo "Checking vendor pattern references..."
# Ensure vendors reference generic patterns, not vendor-specific ones
for file in vendors/*.md; do
if [ -f "$file" ]; then
if grep -E "pattern-.*-(flashbots|shutter|suave)" "$file" 2>/dev/null; then
echo "::error::Vendor file $file references vendor-specific pattern names"
exit 1
fi
fi
done
2 changes: 1 addition & 1 deletion domains/funds-assets.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ status: draft
## Shortest-path patterns
- Confidential ERC-20 on privacy L2 (FHE) + ERC-7573 (`/patterns/pattern-confidential-erc20-fhe-l2-erc7573.md`)
- [L1 ZK commitment pool](../patterns/pattern-l1-zk-commitment-pool.md)
- [Crypto-registry bridge (eWpG) + EAS](../patterns/pattern-crypto-registry-bridge-eWpG-eas.md)
- [Crypto-registry bridge (eWpG) + EAS](../patterns/pattern-crypto-registry-bridge-ewpg-eas.md)
- [ICMA Bond Data Taxonomy](../patterns/pattern-icma-bdt-data-model.md)
- [ZK proof of derivative delta](../patterns/pattern-zk-derivative-delta.md)
- [Selective disclosure (view keys + proofs)](../patterns/pattern-regulatory-disclosure-keys-proofs.md)
Expand Down
2 changes: 1 addition & 1 deletion domains/identity-compliance.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ status: draft
## Shortest-path patterns
- [zk-KYC/ML + ONCHAINID (ERC-734-735)](/patterns/pattern-zk-kyc-ml-id-erc734-735.md)
- [Selective disclosure (view keys + proofs)](/patterns/pattern-regulatory-disclosure-keys-proofs.md)
- [Crypto-registry bridge (eWpG) + EAS](/patterns/pattern-crypto-registry-bridge-eWpG-eas.md)
- [Crypto-registry bridge (eWpG) + EAS](/patterns/pattern-crypto-registry-bridge-ewpg-eas.md)

## Adjacent vendors
- [Chainlink ACE](/vendors/chainlink-ace.md)
2 changes: 1 addition & 1 deletion patterns/pattern-erc3643-rwa.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Enable compliant tokenization of real-world assets with built-in identity manage
## See also

- [Private Bonds Approach](../approaches/approach-private-bonds.md)
- [Crypto Registry Bridge eWpG EAS](pattern-crypto-registry-bridge-eWpG-eas.md)
- [Crypto Registry Bridge eWpG EAS](pattern-crypto-registry-bridge-ewpg-eas.md)
- [Regulatory Disclosure Keys Proofs](pattern-regulatory-disclosure-keys-proofs.md)
- [ZK KYC ML ID ERC734-735](pattern-zk-kyc-ml-id-erc734-735.md)
- [ERC-3643 Documentation](https://docs.erc3643.org/erc-3643)
2 changes: 1 addition & 1 deletion patterns/pattern-icma-bdt-data-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Use **ICMA Bond Data Taxonomy** as the canonical schema for bond terms & lifecyc
- Issuance terms in BDT; hash anchored via EAS; regulator verifies consistency.

## See also
- pattern-crypto-registry-bridge-eWpG-eas.md
- pattern-crypto-registry-bridge-ewpg-eas.md

## See also (external)
- ICMA BDT overview: https://www.icmagroup.org/fintech-and-digitalisation/fintech-advisory-committee-and-related-groups/bond-data-taxonomy/
Expand Down
2 changes: 1 addition & 1 deletion patterns/pattern-permissioned-ledger-interoperability.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,4 @@ Enable atomic transactions and data exchange across distinct permissioned ledger

- Pattern: [DvP ERC-7573](../patterns/pattern-dvp-erc7573.md)
- Pattern: [Private ISO20022](../patterns/pattern-private-iso20022.md)
- Pattern: [Crypto-Registry Bridge eWpG-EAS](../patterns/pattern-crypto-registry-bridge-eWpG-eas.md)
- Pattern: [Crypto-Registry Bridge eWpG-EAS](../patterns/pattern-crypto-registry-bridge-ewpg-eas.md)
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ avoid-when:
- Strong amount confidentiality is required (use shielded pools or confidential tokens).
- Institutions require regulator keys / scoped audit by default.
dependencies:
- [ERC-20](https://eips.ethereum.org/EIPS/eip-20)
- [ERC-4337](https://eips.ethereum.org/EIPS/eip-4337) (optional, account abstraction for wallet UX)
- [EIP-5564](https://eips.ethereum.org/EIPS/eip-5564) (Ethereum Stealth Addresses draft)
- ERC-20
- ERC-4337 (optional, account abstraction for wallet UX)
- EIP-5564 (Ethereum Stealth Addresses draft)
---

## Intent
Expand Down
3 changes: 3 additions & 0 deletions scripts/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules/
package-lock.json
validation-report.md
17 changes: 17 additions & 0 deletions scripts/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"name": "iptf-map-validation",
"version": "1.0.0",
"description": "Validation scripts for IPTF Map documentation",
"main": "validate-patterns.js",
"scripts": {
"validate": "node validate-patterns.js",
"validate:ci": "CI_MODE=strict node validate-patterns.js"
},
"dependencies": {
"js-yaml": "^4.1.0"
},
"engines": {
"node": ">=16.0.0"
},
"license": "CC0"
}
Loading
Loading