InfraFabric External Review Pack — Single File
This is a single-file bundle intended for review environments that cannot reliably fetch multiple URLs.
Links
- Pack (this file): https://infrafabric.io/static/pack/Z_kiBtTQHztidcgYYaSRy4UK.md
- Review pack (links only): https://infrafabric.io/static/review/Z_kiBtTQHztidcgYYaSRy4UK.md
- Review document (rendered): https://infrafabric.io/static/dossier/Z_kiBtTQHztidcgYYaSRy4UK
- Review document (download Markdown): https://infrafabric.io/static/dossier/Z_kiBtTQHztidcgYYaSRy4UK/download
- if.trace receipt page: https://infrafabric.io/static/trace/Z_kiBtTQHztidcgYYaSRy4UK
- Source (download): https://infrafabric.io/static/source/8b6107c1da94774c99f35286cfdf6967891cd7b4c6101d3a4776236ddcefdb83.tgz
Alternate host mirror (same paths)
- Pack (this file): https://git.infrafabric.io/static/pack/Z_kiBtTQHztidcgYYaSRy4UK.md
- Review pack: https://git.infrafabric.io/static/review/Z_kiBtTQHztidcgYYaSRy4UK.md
- Review document: https://git.infrafabric.io/static/dossier/Z_kiBtTQHztidcgYYaSRy4UK
- Trace: https://git.infrafabric.io/static/trace/Z_kiBtTQHztidcgYYaSRy4UK
Review instructions (portable)
Hard rules:
- 100% factual: every non-trivial claim must be tagged [SOURCE]/[REVIEW]/[TRACE]/[INFERENCE]. If unverified, say “unverified” and stop.
- Vendor-neutral: critique deployment conditions + org behaviors, not vendor intent/competence.
- Mirror discipline: follow the review document’s section order; do not invent a new structure.
Deliverables:
A) 5–10 bullets: what works / what doesn’t (tag each)
B) Scorecard (0–5): mirror integrity, layout fidelity, humor discipline, mermaid value, if.trace demo value, CTA stealth
C) Section-by-section critique (mirror headings): what’s mirrored, what’s missing, what feels templated/repeated
D) Vendor-safe conclusion rewrite: success conditions / traps / questions-to-ask-vendor
E) Unified diff patches against the current Dave bible (e.g., IF_DAVE_BIBLE_v2.0.md) and generator rules
if.trace receipt (portable extract)
{
"id": "4fc13c3c-09e7-474f-ad9c-4c2a48d75503",
"status": "done",
"createdAt": "2026-01-05T21:24:07Z",
"originalFilename": "if-api-github-webhook-demo-source.tgz",
"style": "if.api.github.webhook.demo.v1",
"sourceSha256": "8b6107c1da94774c99f35286cfdf6967891cd7b4c6101d3a4776236ddcefdb83",
"outputSha256": "cb15635417e873e8409c8a4a4ca504fdfc0d1a1d74ab1d02036b5c811f513034",
"warnings": ""
}
Review document (Markdown)
# if.api demo — GitHub webhook normalization (receipt-backed)
**Audience:** external reviewers + operators
**Reality gate:** this is a demo of a transformation contract, not a deployed integration.
---
## Links (HTML-first)
IF.TRACE/T3 receipt:
https://infrafabric.io/static/trace/Z_kiBtTQHztidcgYYaSRy4UK
Pack (HTML view):
https://infrafabric.io/static/pack/Z_kiBtTQHztidcgYYaSRy4UK
Pack (raw Markdown):
https://infrafabric.io/static/pack/Z_kiBtTQHztidcgYYaSRy4UK.md
Source bundle (tgz):
https://infrafabric.io/static/source/8b6107c1da94774c99f35286cfdf6967891cd7b4c6101d3a4776236ddcefdb83.tgz
---
## What this proves (black/white)
This demo proves:
- a known input payload can be transformed deterministically into a normalized event envelope
- the transformation output is bound to IF.TRACE/T3 receipts (hash checks; signatures only where present and verifiable)
This demo does not prove:
- GitHub auth, rate-limit behavior, or live webhook delivery
- any shipped `if.bus` runtime or message broker
---
## Demo artifacts
Source bundle sha256 (tgz):
8b6107c1da94774c99f35286cfdf6967891cd7b4c6101d3a4776236ddcefdb83
Input JSON sha256:
29ed81a254ba70108386a09688d159f131734fbc915fcfaf2ad0ae0cc8e82765
Normalized output JSON sha256:
cd34502dd28a8d031893c9b1b52bd6dfaf374080e07249977b61e0d73a3651ac
---
## How to reproduce (no internal access)
```bash
curl -fsSL -o if-api-github-webhook-demo-source.tgz "https://infrafabric.io/static/source/8b6107c1da94774c99f35286cfdf6967891cd7b4c6101d3a4776236ddcefdb83.tgz"
sha256sum if-api-github-webhook-demo-source.tgz
tar -xzf if-api-github-webhook-demo-source.tgz
python3 normalize_github_push.py github_push_sample.json > normalized_event.json
sha256sum normalized_event.json
Expected sha256sum (source bundle):
8b6107c1da94774c99f35286cfdf6967891cd7b4c6101d3a4776236ddcefdb83 if-api-github-webhook-demo-source.tgz
Expected sha256sum (normalized output):
cd34502dd28a8d031893c9b1b52bd6dfaf374080e07249977b61e0d73a3651ac normalized_event.json
Output (normalized event envelope)
{
"commits": [
{
"id": "c0ffee25404a1f0d0a1b2c3d4e5f60718293a4b5",
"message": "Fix README",
"timestamp": "2026-01-05T00:00:00Z",
"url": "https://github.com/octo-org/octo-repo/commit/c0ffee25404a1f0d0a1b2c3d4e5f60718293a4b5"
},
{
"id": "deadbeefcafebabef00d0123456789abcdef0000",
"message": "Add docs",
"timestamp": "2026-01-05T00:01:00Z",
"url": "https://github.com/octo-org/octo-repo/commit/deadbeefcafebabef00d0123456789abcdef0000"
}
],
"event": "push",
"input_sha256": "29ed81a254ba70108386a09688d159f131734fbc915fcfaf2ad0ae0cc8e82765",
"integration": "github",
"schema_version": "demo.v1",
"source": {
"after": "1111111111111111111111111111111111111111",
"before": "0000000000000000000000000000000000000000",
"pusher": {
"email": "octocat@users.noreply.github.com",
"name": "octocat"
},
"ref": "refs/heads/main",
"repository": {
"full_name": "octo-org/octo-repo",
"html_url": "https://github.com/octo-org/octo-repo"
}
},
"summary": {
"commit_count": 2,
"head_commit_id": "c0ffee25404a1f0d0a1b2c3d4e5f60718293a4b5"
}
}