@ghostbyte/agent-docs-kit 4.0.3 → 5.0.1
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/CHANGELOG.md +45 -0
- package/README.md +43 -38
- package/SECURITY.md +11 -0
- package/content/catalog.json +191 -22
- package/content/documentation/01-system-documentation.md +13 -0
- package/content/documentation/02-project-governance.md +13 -0
- package/content/documentation/03-development-records.md +13 -0
- package/content/documentation/04-testing-evidence.md +13 -0
- package/content/documentation/05-operations-runbooks.md +13 -0
- package/content/documentation/06-future-proposals.md +13 -0
- package/content/documentation/07-archive-governance.md +13 -0
- package/content/documentation/full-reference.md +24 -0
- package/content/engineering/01-query-performance.md +17 -27
- package/content/engineering/02-networking-fundamentals.md +17 -27
- package/content/engineering/03-rate-limiting-algorithms.md +18 -28
- package/content/engineering/04-production-debugging.md +17 -27
- package/content/engineering/05-code-review-practices.md +17 -27
- package/content/engineering/06-data-modeling.md +17 -27
- package/content/engineering/07-cloud-cost-saving.md +17 -27
- package/content/engineering/08-testing-types.md +17 -27
- package/content/engineering/09-message-queues.md +17 -27
- package/content/engineering/10-api-design-compatibility.md +14 -0
- package/content/engineering/11-reliability-slos.md +14 -0
- package/content/engineering/12-observability-telemetry.md +14 -0
- package/content/engineering/13-deployment-change-safety.md +14 -0
- package/content/engineering/14-capacity-concurrency.md +14 -0
- package/content/engineering/full-reference.md +24 -144
- package/content/security/01-design-architecture.md +11 -19
- package/content/security/02-local-development.md +13 -21
- package/content/security/03-database-backend.md +18 -26
- package/content/security/04-api-layer.md +23 -31
- package/content/security/05-frontend-ui.md +16 -24
- package/content/security/06-application-security-testing.md +22 -28
- package/content/security/07-cicd-release-engineering.md +13 -21
- package/content/security/08-cloud-infrastructure.md +17 -25
- package/content/security/09-edge-cdn-dns.md +16 -24
- package/content/security/10-release-rollout.md +13 -21
- package/content/security/11-post-release-monitoring-ir.md +15 -23
- package/content/security/12-ongoing-operations.md +24 -32
- package/content/security/full-reference.md +30 -3163
- package/docs/ARCHITECTURE.md +32 -91
- package/docs/CONTENT_MAINTENANCE.md +5 -1
- package/docs/GITHUB_AND_NPM_SETUP.md +1 -1
- package/docs/RELEASE_PROCESS.md +6 -6
- package/docs/SECURITY_MODEL.md +2 -0
- package/package.json +20 -7
- package/scripts/build-site.mjs +13 -0
- package/scripts/build-skill.mjs +24 -0
- package/scripts/check-links.mjs +56 -0
- package/scripts/check-review-dates.mjs +21 -0
- package/scripts/preview-site.mjs +43 -0
- package/scripts/smoke-package.mjs +82 -0
- package/scripts/validate-content.mjs +97 -0
- package/site/app.js +121 -0
- package/site/index.html +346 -0
- package/site/styles.css +159 -0
- package/skills/manage-project-quality/SKILL.md +18 -2
- package/skills/manage-project-quality/assets/documentation-report.md +3 -3
- package/skills/manage-project-quality/assets/engineering-report.md +3 -3
- package/skills/manage-project-quality/assets/security-report.md +3 -3
- package/skills/manage-project-quality/references/documentation-01-system-documentation.md +13 -0
- package/skills/manage-project-quality/references/documentation-02-project-governance.md +13 -0
- package/skills/manage-project-quality/references/documentation-03-development-records.md +13 -0
- package/skills/manage-project-quality/references/documentation-04-testing-evidence.md +13 -0
- package/skills/manage-project-quality/references/documentation-05-operations-runbooks.md +13 -0
- package/skills/manage-project-quality/references/documentation-06-future-proposals.md +13 -0
- package/skills/manage-project-quality/references/documentation-07-archive-governance.md +13 -0
- package/skills/manage-project-quality/references/documentation-full-reference.md +24 -0
- package/skills/manage-project-quality/references/documentation-governance.md +2 -2
- package/skills/manage-project-quality/references/engineering-01-query-performance.md +17 -27
- package/skills/manage-project-quality/references/engineering-02-networking-fundamentals.md +17 -27
- package/skills/manage-project-quality/references/engineering-03-rate-limiting-algorithms.md +18 -28
- package/skills/manage-project-quality/references/engineering-04-production-debugging.md +17 -27
- package/skills/manage-project-quality/references/engineering-05-code-review-practices.md +17 -27
- package/skills/manage-project-quality/references/engineering-06-data-modeling.md +17 -27
- package/skills/manage-project-quality/references/engineering-07-cloud-cost-saving.md +17 -27
- package/skills/manage-project-quality/references/engineering-08-testing-types.md +17 -27
- package/skills/manage-project-quality/references/engineering-09-message-queues.md +17 -27
- package/skills/manage-project-quality/references/engineering-10-api-design-compatibility.md +14 -0
- package/skills/manage-project-quality/references/engineering-11-reliability-slos.md +14 -0
- package/skills/manage-project-quality/references/engineering-12-observability-telemetry.md +14 -0
- package/skills/manage-project-quality/references/engineering-13-deployment-change-safety.md +14 -0
- package/skills/manage-project-quality/references/engineering-14-capacity-concurrency.md +14 -0
- package/skills/manage-project-quality/references/engineering-full-reference.md +24 -144
- package/skills/manage-project-quality/references/engineering-protocol.md +1 -1
- package/skills/manage-project-quality/references/security-01-design-architecture.md +11 -19
- package/skills/manage-project-quality/references/security-02-local-development.md +13 -21
- package/skills/manage-project-quality/references/security-03-database-backend.md +18 -26
- package/skills/manage-project-quality/references/security-04-api-layer.md +23 -31
- package/skills/manage-project-quality/references/security-05-frontend-ui.md +16 -24
- package/skills/manage-project-quality/references/security-06-application-security-testing.md +22 -28
- package/skills/manage-project-quality/references/security-07-cicd-release-engineering.md +13 -21
- package/skills/manage-project-quality/references/security-08-cloud-infrastructure.md +17 -25
- package/skills/manage-project-quality/references/security-09-edge-cdn-dns.md +16 -24
- package/skills/manage-project-quality/references/security-10-release-rollout.md +13 -21
- package/skills/manage-project-quality/references/security-11-post-release-monitoring-ir.md +15 -23
- package/skills/manage-project-quality/references/security-12-ongoing-operations.md +24 -32
- package/skills/manage-project-quality/references/security-full-reference.md +30 -3163
- package/skills/manage-project-quality/scripts/check-report.mjs +67 -16
- package/src/api/index.mjs +3 -0
- package/src/cli/arguments.mjs +27 -3
- package/src/cli/help.mjs +37 -17
- package/src/cli/main.mjs +64 -10
- package/src/commands/audit.mjs +146 -31
- package/src/commands/doctor.mjs +1 -1
- package/src/commands/guide.mjs +12 -0
- package/src/commands/list.mjs +1 -1
- package/src/commands/setup.mjs +9 -4
- package/src/commands/skill.mjs +1 -0
- package/src/commands/template.mjs +32 -0
- package/src/commands/validate.mjs +36 -4
- package/src/core/config.mjs +61 -0
- package/src/core/files.mjs +68 -6
- package/templates/adr.md +20 -0
- package/templates/change-record.md +18 -0
- package/templates/incident-review.md +20 -0
- package/templates/runbook.md +18 -0
- package/templates/test-evidence.md +18 -0
- package/tests/cli.test.mjs +242 -0
- package/tests/content.test.mjs +18 -0
package/site/styles.css
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
color-scheme: dark;
|
|
3
|
+
--bg: #0a0d0c;
|
|
4
|
+
--panel: #121715;
|
|
5
|
+
--panel-2: #181e1b;
|
|
6
|
+
--ink: #f5f5ee;
|
|
7
|
+
--muted: #a5ada7;
|
|
8
|
+
--line: #2c3430;
|
|
9
|
+
--line-strong: #465149;
|
|
10
|
+
--lime: #c8f46b;
|
|
11
|
+
--lime-dark: #87b52e;
|
|
12
|
+
--blue: #78bfff;
|
|
13
|
+
--red: #ff837a;
|
|
14
|
+
--amber: #f1c56b;
|
|
15
|
+
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
* { box-sizing: border-box; }
|
|
19
|
+
html { scroll-behavior: smooth; }
|
|
20
|
+
body { margin: 0; color: var(--ink); background: var(--bg); line-height: 1.6; }
|
|
21
|
+
a { color: inherit; }
|
|
22
|
+
button { font: inherit; }
|
|
23
|
+
.shell { width: min(1160px, calc(100% - 3rem)); margin-inline: auto; }
|
|
24
|
+
.skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 20; padding: .7rem 1rem; color: #111; background: var(--lime); }
|
|
25
|
+
.skip-link:focus { top: 1rem; }
|
|
26
|
+
|
|
27
|
+
.hero { min-height: 760px; overflow: hidden; border-bottom: 1px solid var(--line); background: radial-gradient(circle at 78% 25%, rgba(66, 113, 77, .35), transparent 31%), linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px), var(--bg); background-size: auto, 42px 42px, 42px 42px, auto; }
|
|
28
|
+
.nav { display: flex; align-items: center; min-height: 78px; border-bottom: 1px solid rgba(255,255,255,.08); }
|
|
29
|
+
.brand { display: inline-flex; gap: .75rem; align-items: center; margin-right: auto; font-weight: 760; letter-spacing: -.02em; text-decoration: none; }
|
|
30
|
+
.brand-mark { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid var(--lime-dark); border-radius: 9px; color: var(--lime); background: rgba(200,244,107,.07); font: 700 .72rem ui-monospace, monospace; }
|
|
31
|
+
.nav-links { display: flex; gap: 1.55rem; align-items: center; }
|
|
32
|
+
.nav-links a { color: var(--muted); font-size: .9rem; text-decoration: none; }
|
|
33
|
+
.nav-links a:hover, .nav-links a:focus-visible { color: var(--ink); }
|
|
34
|
+
.nav-links .nav-install { padding: .55rem .85rem; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--ink); }
|
|
35
|
+
|
|
36
|
+
.hero-layout { display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(3rem, 7vw, 7rem); align-items: center; padding-block: 8rem 9rem; }
|
|
37
|
+
.status-pill { display: inline-flex; gap: .55rem; align-items: center; margin-bottom: 1.5rem; padding: .42rem .72rem; border: 1px solid var(--line); border-radius: 999px; color: #cbd2cd; background: rgba(9,12,11,.65); font: 650 .74rem ui-monospace, monospace; text-transform: uppercase; letter-spacing: .06em; }
|
|
38
|
+
.status-pill i { width: 7px; height: 7px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 12px var(--lime); }
|
|
39
|
+
h1, h2, h3, h4, p { margin-top: 0; }
|
|
40
|
+
h1 { max-width: 780px; margin-bottom: 1.4rem; font-size: clamp(3.1rem, 6.4vw, 6.4rem); line-height: .94; letter-spacing: -.065em; }
|
|
41
|
+
h1 em { color: var(--lime); font-style: normal; }
|
|
42
|
+
h2 { margin-bottom: 1.2rem; font-size: clamp(2.25rem, 4.5vw, 4.25rem); line-height: 1.02; letter-spacing: -.05em; }
|
|
43
|
+
h3 { letter-spacing: -.025em; }
|
|
44
|
+
.hero-lead { max-width: 670px; color: #b8c0ba; font-size: clamp(1.05rem, 1.8vw, 1.25rem); }
|
|
45
|
+
.actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 2rem 0 3rem; }
|
|
46
|
+
.button { display: inline-flex; gap: 1.2rem; align-items: center; justify-content: center; min-height: 48px; padding: .7rem 1.05rem; border: 1px solid var(--line-strong); border-radius: 8px; font-weight: 720; text-decoration: none; }
|
|
47
|
+
.button.primary { border-color: var(--lime); color: #10130f; background: var(--lime); }
|
|
48
|
+
.button.primary:hover { background: #d8ff8d; }
|
|
49
|
+
.button.secondary:hover { border-color: #69766e; background: rgba(255,255,255,.035); }
|
|
50
|
+
.hero-facts { display: flex; gap: clamp(1.5rem, 4vw, 3.5rem); margin: 0; }
|
|
51
|
+
.hero-facts div { display: flex; gap: .6rem; align-items: center; }
|
|
52
|
+
.hero-facts dt { color: var(--ink); font-size: 1.8rem; font-weight: 780; }
|
|
53
|
+
.hero-facts dd { max-width: 85px; margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.25; }
|
|
54
|
+
|
|
55
|
+
.console { overflow: hidden; border: 1px solid #3b453f; border-radius: 16px; background: rgba(9,12,11,.94); box-shadow: 0 30px 100px rgba(0,0,0,.42), 0 0 60px rgba(99,154,80,.08); transform: rotate(1deg); }
|
|
56
|
+
.console-bar { display: flex; gap: .42rem; align-items: center; padding: .75rem 1rem; border-bottom: 1px solid var(--line); background: #171c19; }
|
|
57
|
+
.console-bar span { width: 9px; height: 9px; border-radius: 50%; background: #475049; }
|
|
58
|
+
.console-bar span:first-child { background: #f0776d; }.console-bar span:nth-child(2) { background: #e9be62; }.console-bar span:nth-child(3) { background: #7ac36d; }
|
|
59
|
+
.console-bar b { margin-left: auto; color: #7f8982; font: 500 .68rem ui-monospace, monospace; }
|
|
60
|
+
.console-body { padding: 1.4rem; color: #d6ddd8; font: .8rem/1.65 ui-monospace, SFMono-Regular, Consolas, monospace; }
|
|
61
|
+
.console-body p { margin-bottom: 1rem; }.console-body .prompt { color: var(--lime); }.console-title { color: var(--ink); font-weight: 700; }
|
|
62
|
+
.console-body ol { padding: 0; list-style: none; }.console-body li { display: flex; align-items: center; padding: .62rem .75rem; border-radius: 7px; color: #a3aca6; }.console-body li i { width: 2.2rem; color: #667169; font-style: normal; }.console-body li b { margin-left: auto; color: var(--lime); font-size: .65rem; text-transform: uppercase; }.console-body li.active { outline: 1px solid #53653c; color: var(--ink); background: rgba(200,244,107,.07); }
|
|
63
|
+
.console-result { margin: 1.4rem 0 0 !important; padding: 1rem; border-left: 2px solid var(--lime); color: #aab3ad; background: #121714; }.console-result span { color: var(--lime); }
|
|
64
|
+
|
|
65
|
+
.principle-strip { border-bottom: 1px solid var(--line); background: #0e1210; }
|
|
66
|
+
.principle-strip .shell { display: grid; grid-template-columns: repeat(4, 1fr); }
|
|
67
|
+
.principle-strip p { margin: 0; padding: 1.1rem; border-right: 1px solid var(--line); color: var(--muted); font: 600 .71rem ui-monospace, monospace; text-align: center; text-transform: uppercase; letter-spacing: .08em; }.principle-strip p:first-child { border-left: 1px solid var(--line); }.principle-strip span::before { content: "●"; margin-right: .55rem; color: var(--lime); font-size: .55rem; }
|
|
68
|
+
|
|
69
|
+
.section { padding-block: clamp(5rem, 10vw, 9rem); }
|
|
70
|
+
.section-heading { max-width: 760px; margin-bottom: 3.5rem; }.section-heading > p:not(.eyebrow) { max-width: 630px; color: var(--muted); font-size: 1.05rem; }
|
|
71
|
+
.split-heading { display: grid; grid-template-columns: 1.3fr .7fr; gap: 4rem; max-width: none; align-items: end; }.split-heading > p { margin-bottom: 1.3rem; }
|
|
72
|
+
.eyebrow { margin-bottom: .8rem; color: var(--lime); font: 720 .72rem/1.2 ui-monospace, monospace; letter-spacing: .13em; text-transform: uppercase; }
|
|
73
|
+
|
|
74
|
+
.workflow-tabs { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line); border-radius: 12px 12px 0 0; }
|
|
75
|
+
.workflow-tabs button { padding: 1.15rem; border: 0; border-right: 1px solid var(--line); color: var(--muted); background: #0f1311; cursor: pointer; }.workflow-tabs button:last-child { border-right: 0; }.workflow-tabs button span { margin-right: .55rem; color: #687169; font: .72rem ui-monospace, monospace; }.workflow-tabs button[aria-selected="true"] { color: #111; background: var(--lime); font-weight: 780; }.workflow-tabs button[aria-selected="true"] span { color: #41551b; }
|
|
76
|
+
.workflow-panel { display: grid; grid-template-columns: .8fr 1.2fr; gap: 4rem; min-height: 470px; padding: clamp(2rem, 5vw, 4rem); border: 1px solid var(--line); border-top: 0; border-radius: 0 0 12px 12px; background: linear-gradient(140deg, #151a17, #101311); }
|
|
77
|
+
.workflow-number { color: var(--blue); font: 650 .72rem ui-monospace, monospace; text-transform: uppercase; letter-spacing: .1em; }.workflow-intro h3 { margin: 1rem 0; font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.02; }.workflow-intro > p:not(.workflow-number) { color: var(--muted); }.workflow-intro a { display: inline-block; margin-top: 1rem; color: var(--lime); font-size: .9rem; text-decoration: none; }
|
|
78
|
+
.workflow-details { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }.workflow-details article { padding: 1.35rem; border: 1px solid var(--line); border-radius: 10px; background: rgba(5,8,7,.28); }.workflow-details h4 { margin-bottom: .8rem; font-size: .82rem; text-transform: uppercase; letter-spacing: .08em; }.workflow-details ul { margin: 0; padding-left: 1.1rem; color: var(--muted); font-size: .9rem; }.workflow-details li { margin: .4rem 0; }.workflow-details li::marker { color: var(--lime); }.workflow-details .result-card { grid-column: 1 / -1; }.result-card p { margin: 1rem 0 0; color: var(--muted); font-size: .82rem; }.status-grid { display: flex; flex-wrap: wrap; gap: .5rem; }.status-grid span { padding: .38rem .58rem; border: 1px solid var(--line-strong); border-radius: 6px; color: #d6ddd8; font: .68rem ui-monospace, monospace; }.security-status span:first-child, .engineering-status span:first-child, .doc-status span:first-child { border-color: #607a3a; color: var(--lime); }.security-status span:nth-child(2) { border-color: #79433e; color: var(--red); }.security-status span:nth-child(3), .doc-status span:nth-child(2), .engineering-status span:nth-child(2) { border-color: #80693d; color: var(--amber); }
|
|
79
|
+
|
|
80
|
+
.process-section { border-block: 1px solid var(--line); background: #101412; }.process-list { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }.process-list li { display: grid; grid-template-columns: 90px 1fr; gap: 1rem; padding: 2rem 0; border-bottom: 1px solid var(--line); }.process-list > li > span { color: var(--lime); font: 700 .74rem ui-monospace, monospace; }.process-list h3 { margin: 0 0 .35rem; font-size: 1.4rem; }.process-list p { max-width: 690px; margin: 0; color: var(--muted); }
|
|
81
|
+
|
|
82
|
+
.routing-diagram { display: grid; grid-template-columns: 1fr auto 1fr auto 1.15fr auto 1fr; gap: .8rem; align-items: center; }.route-node { min-height: 125px; padding: 1rem; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); }.route-node small { display: block; margin-bottom: .8rem; color: #778179; font: .65rem ui-monospace, monospace; text-transform: uppercase; }.route-node strong { display: block; font-size: .9rem; }.route-node code { display: block; margin-top: .65rem; color: var(--lime); font-size: .65rem; }.route-node.router { border-color: #52633b; }.route-node.selected { min-height: auto; border-color: #405036; background: #151c13; }.route-node.muted { min-height: auto; opacity: .55; }.route-node.report { border-color: #355672; }.route-stack { display: grid; gap: .5rem; }.route-arrow { color: #5c675f; }
|
|
83
|
+
|
|
84
|
+
.command-section { background: #e9eddf; color: #10130f; }.command-layout { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(3rem, 8vw, 7rem); align-items: center; }.command-section .eyebrow { color: #4c681a; }.command-section p { color: #566057; }.command-notes { margin-top: 2rem; border-top: 1px solid #bdc4b8; }.command-notes p { display: grid; grid-template-columns: 22px 1fr; margin: 0; padding: .8rem 0; border-bottom: 1px solid #c8cec3; }.command-notes span { color: #557817; }.command-notes strong { color: #20251f; }.command-notes small { grid-column: 2; }
|
|
85
|
+
.command-mode-card { margin-top: 1.5rem; padding: 1rem; border: 1px solid #bdc6b9; border-radius: 12px; background: rgba(255,255,255,.5); }.command-mode-card > strong { display: block; margin-bottom: .7rem; font-size: .84rem; }.command-mode-switch { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; padding: .3rem; border-radius: 9px; background: #d8ddd2; }.command-mode-switch button { display: flex; flex-direction: column; gap: .05rem; padding: .65rem .8rem; border: 1px solid transparent; border-radius: 7px; color: #5a635b; background: transparent; cursor: pointer; text-align: left; }.command-mode-switch button span { color: inherit; font-size: .82rem; font-weight: 760; }.command-mode-switch button small { font-size: .68rem; }.command-mode-switch button[aria-pressed="true"] { border-color: #a7b09f; color: #151a15; background: #fff; box-shadow: 0 3px 12px rgba(28,38,29,.09); }.command-mode-help { min-height: 2.7em; margin: .75rem 0 0 !important; font-size: .76rem; line-height: 1.35; }
|
|
86
|
+
.code-window { overflow: hidden; border: 1px solid #252d28; border-radius: 14px; background: #0b0e0c; box-shadow: 0 25px 70px rgba(21,28,23,.2); }.code-tabs { display: flex; gap: .25rem; padding: .55rem; border-bottom: 1px solid #2b332e; overflow-x: auto; }.code-tabs button { padding: .45rem .7rem; border: 0; border-radius: 6px; color: #89938c; background: transparent; cursor: pointer; font-size: .75rem; }.code-tabs button.is-active { color: #111; background: var(--lime); font-weight: 700; }.code-panel { position: relative; min-height: 260px; padding: 1.6rem; }.code-panel pre { overflow: auto; margin: 0; color: #dce5df; font: .78rem/1.8 ui-monospace, Consolas, monospace; white-space: pre-wrap; }.copy-button { padding: .45rem .65rem; border: 1px solid #414c45; border-radius: 6px; color: #b5bdb8; background: #171c19; cursor: pointer; font-size: .72rem; }.code-panel .copy-button { position: absolute; right: 1rem; bottom: 1rem; }.copy-button:hover { color: var(--ink); border-color: #69766e; }
|
|
87
|
+
|
|
88
|
+
.reference-section { padding-bottom: 7rem; border-top: 1px solid var(--line); }.command-reference { border-top: 1px solid var(--line); }.command-reference article { display: grid; grid-template-columns: minmax(270px, .7fr) 1.3fr; gap: 3rem; padding: 1.6rem 0; border-bottom: 1px solid var(--line); }.command-meta { display: flex; flex-direction: column; align-items: flex-start; gap: .7rem; }.command-meta > span { padding: .22rem .42rem; border: 1px solid var(--line-strong); border-radius: 4px; font: 650 .6rem ui-monospace, monospace; text-transform: uppercase; letter-spacing: .07em; }.command-meta .write-label { border-color: #5e723b; color: var(--lime); }.command-meta .read-label { color: var(--blue); }.command-meta code { color: #e1e8e3; font: .78rem/1.5 ui-monospace, monospace; overflow-wrap: anywhere; }.command-reference h3 { margin-bottom: .35rem; font-size: 1.1rem; }.command-reference p { margin: 0; color: var(--muted); font-size: .9rem; }
|
|
89
|
+
.options-block { display: grid; grid-template-columns: .6fr 1.4fr; gap: 4rem; margin-top: 4rem; padding: 2rem; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); }.options-block h3 { font-size: 1.6rem; }.options-block dl { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; margin: 0; }.options-block dl div { padding: .8rem 0; border-bottom: 1px solid var(--line); }.options-block dt { color: var(--lime); font-size: .75rem; }.options-block dd { margin: .25rem 0 0; color: var(--muted); font-size: .78rem; }
|
|
90
|
+
|
|
91
|
+
.library-section { border-block: 1px solid var(--line); background: #101412; }.package-parts { display: grid; grid-template-columns: repeat(4, 1fr); margin-bottom: 4rem; border: 1px solid var(--line); border-radius: 12px; }.package-parts article { min-height: 250px; padding: 1.35rem; border-right: 1px solid var(--line); }.package-parts article:last-child { border-right: 0; }.package-parts article > span { color: var(--blue); font: 700 .64rem ui-monospace, monospace; letter-spacing: .09em; }.package-parts h3 { margin: 3.5rem 0 .7rem; font-size: 1.12rem; }.package-parts p { color: var(--muted); font-size: .85rem; }
|
|
92
|
+
.catalog-layout { display: grid; grid-template-columns: .8fr 1.2fr 1fr; gap: 1rem; }.catalog-card { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #0d100f; }.catalog-card header { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; border-bottom: 1px solid var(--line); }.catalog-card header span { font-weight: 720; }.catalog-card header strong { color: var(--lime); font: 650 .68rem ui-monospace, monospace; white-space: nowrap; }.catalog-card ol { margin: 0; padding: .8rem 1.2rem 1.2rem; list-style: none; }.catalog-card li { display: grid; grid-template-columns: 28px 1fr; padding: .4rem 0; color: #b3bbb5; font-size: .78rem; }.catalog-card li b { color: #5e6962; font: 600 .67rem ui-monospace, monospace; }
|
|
93
|
+
.skill-detail { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; margin-top: 4rem; padding: clamp(2rem, 5vw, 4rem); border: 1px solid #4e6437; border-radius: 14px; background: radial-gradient(circle at 80% 20%, rgba(103,143,47,.15), transparent 35%), #111611; }.skill-detail h3 { margin-bottom: 1rem; font-size: clamp(1.45rem, 3vw, 2.4rem); }.skill-detail h3 code { color: var(--lime); }.skill-detail p:not(.eyebrow) { color: var(--muted); }.skill-detail ol { margin: 0; padding: 0; list-style: none; }.skill-detail li { display: grid; grid-template-columns: 28px 1fr; gap: .5rem; padding: .75rem 0; border-bottom: 1px solid var(--line); color: #c3cbc5; font-size: .88rem; }.skill-detail li span { display: grid; width: 22px; height: 22px; place-items: center; border: 1px solid #52633b; border-radius: 50%; color: var(--lime); font: .65rem ui-monospace, monospace; }
|
|
94
|
+
|
|
95
|
+
.trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line); border-radius: 12px; }.trust-grid article { min-height: 250px; padding: 1.4rem; border-right: 1px solid var(--line); }.trust-grid article:last-child { border-right: 0; }.trust-grid article > span { display: block; margin-bottom: 3.5rem; color: var(--lime); font-size: 1.5rem; }.trust-grid h3 { font-size: 1.1rem; }.trust-grid p { color: var(--muted); font-size: .88rem; }
|
|
96
|
+
|
|
97
|
+
.quick-start { border-top: 1px solid var(--line); background: linear-gradient(155deg, #182015, #0d100e 55%); }
|
|
98
|
+
.quick-start .section-heading { max-width: 850px; }
|
|
99
|
+
.install-code { display: flex; gap: .7rem; align-items: flex-start; justify-content: space-between; margin-top: .65rem; padding: .75rem; border: 1px solid #29312c; border-radius: 7px; background: #080a09; }
|
|
100
|
+
.install-code code { color: #dce5df; font: .7rem/1.6 ui-monospace, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
101
|
+
.copy-button.light { flex: 0 0 auto; border-color: #435047; color: #dfe7e1; }
|
|
102
|
+
.prerequisite-check, .installation-maintenance { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 5rem); align-items: center; margin-bottom: 1rem; padding: 1.5rem; border: 1px solid var(--line); border-radius: 12px; background: rgba(9,12,10,.68); }
|
|
103
|
+
.prerequisite-check span, .installation-maintenance span, .install-paths header > span, .other-installation summary span, .install-troubleshooting span { color: var(--blue); font: 700 .64rem ui-monospace, monospace; text-transform: uppercase; letter-spacing: .09em; }
|
|
104
|
+
.prerequisite-check h3, .installation-maintenance h3 { margin: .55rem 0 .35rem; font-size: 1.25rem; }
|
|
105
|
+
.prerequisite-check p, .installation-maintenance p { margin: 0; color: var(--muted); font-size: .84rem; }
|
|
106
|
+
.install-paths { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1rem; }
|
|
107
|
+
.install-paths > article { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: rgba(9,12,10,.72); }
|
|
108
|
+
.install-paths > article.recommended { border-color: #5d753d; box-shadow: inset 0 3px 0 var(--lime); }
|
|
109
|
+
.install-paths header { padding: 1.5rem 1.5rem 1.25rem; border-bottom: 1px solid var(--line); }
|
|
110
|
+
.install-paths .recommended header > span { color: var(--lime); }
|
|
111
|
+
.install-paths h3 { margin: .8rem 0 .35rem; font-size: 1.5rem; }
|
|
112
|
+
.install-paths header p { margin: 0; color: var(--muted); font-size: .86rem; }
|
|
113
|
+
.install-paths ol { margin: 0; padding: 0 1.5rem 1.5rem; list-style: none; counter-reset: install-step; }
|
|
114
|
+
.install-paths li { padding: 1.15rem 0; border-bottom: 1px solid var(--line); counter-increment: install-step; }
|
|
115
|
+
.install-paths li:last-child { border-bottom: 0; padding-bottom: 0; }
|
|
116
|
+
.install-paths li > div:first-child { position: relative; padding-left: 2rem; }
|
|
117
|
+
.install-paths li > div:first-child::before { content: counter(install-step); position: absolute; left: 0; top: .05rem; display: grid; width: 1.35rem; height: 1.35rem; place-items: center; border: 1px solid #52633b; border-radius: 50%; color: var(--lime); font: .6rem ui-monospace, monospace; }
|
|
118
|
+
.install-paths strong { display: block; font-size: .88rem; }
|
|
119
|
+
.install-paths small { display: block; margin-top: .2rem; color: var(--muted); font-size: .74rem; }
|
|
120
|
+
.installation-maintenance { margin-block: 1rem; border-color: #355672; }
|
|
121
|
+
.other-installation { display: grid; grid-template-columns: 1fr; gap: 1rem; }
|
|
122
|
+
.other-installation details { border: 1px solid var(--line); border-radius: 10px; background: #0b0e0c; }
|
|
123
|
+
.other-installation summary { padding: 1.15rem 1.25rem; cursor: pointer; font-weight: 700; }
|
|
124
|
+
.other-installation summary span { margin-right: .6rem; }
|
|
125
|
+
.other-installation details > div { padding: 0 1.25rem 1.25rem; }
|
|
126
|
+
.other-installation p { color: var(--muted); font-size: .82rem; }
|
|
127
|
+
.install-troubleshooting { display: grid; grid-template-columns: .7fr 1.3fr; gap: 2rem; margin-top: 1rem; padding: 1.4rem; border: 1px solid #725d35; border-radius: 10px; background: rgba(241,197,107,.06); }
|
|
128
|
+
.install-troubleshooting span { color: var(--amber); }
|
|
129
|
+
.install-troubleshooting h3 { margin: .5rem 0 0; font-size: 1.05rem; }
|
|
130
|
+
.install-troubleshooting p { margin: 0; color: var(--muted); font-size: .84rem; }
|
|
131
|
+
.install-troubleshooting code, .install-paths header code { color: var(--ink); font-size: .9em; }
|
|
132
|
+
|
|
133
|
+
footer { padding-top: 5rem; border-top: 1px solid var(--line); background: #080a09; }.footer-layout { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 4rem; padding-bottom: 4rem; }.footer-layout > div:first-child p { max-width: 400px; margin-top: 1.2rem; color: var(--muted); font-size: .88rem; }.footer-layout > div:not(:first-child) { display: flex; flex-direction: column; gap: .5rem; }.footer-layout > div:not(:first-child) p { margin-bottom: .4rem; color: #747e77; font: .68rem ui-monospace, monospace; text-transform: uppercase; letter-spacing: .1em; }.footer-layout > div:not(:first-child) a { color: #b3bbb5; font-size: .86rem; text-decoration: none; }.footer-layout a:hover { color: var(--lime); }.footer-bottom { display: flex; justify-content: space-between; padding-block: 1.25rem; border-top: 1px solid var(--line); color: #6f7872; font-size: .75rem; }
|
|
134
|
+
|
|
135
|
+
[hidden] { display: none !important; }
|
|
136
|
+
button:focus-visible, a:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
|
|
137
|
+
|
|
138
|
+
@media (max-width: 960px) {
|
|
139
|
+
.hero-layout, .workflow-panel, .command-layout { grid-template-columns: 1fr; }
|
|
140
|
+
.hero-layout { padding-block: 6rem; }.console { max-width: 620px; transform: none; }
|
|
141
|
+
.split-heading { grid-template-columns: 1fr; gap: 1rem; }.workflow-panel { gap: 2.5rem; }
|
|
142
|
+
.routing-diagram { grid-template-columns: 1fr; }.route-arrow { transform: rotate(90deg); text-align: center; }
|
|
143
|
+
.options-block, .skill-detail { grid-template-columns: 1fr; gap: 2rem; }.package-parts { grid-template-columns: 1fr 1fr; }.package-parts article:nth-child(2) { border-right: 0; }.package-parts article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }.catalog-layout { grid-template-columns: 1fr 1fr; }.documentation-catalog { grid-column: 1 / -1; }
|
|
144
|
+
.trust-grid { grid-template-columns: 1fr 1fr; }.trust-grid article:nth-child(2) { border-right: 0; }.trust-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
@media (max-width: 700px) {
|
|
148
|
+
.shell { width: min(100% - 2rem, 1160px); }.hero { min-height: auto; }.nav { align-items: flex-start; padding-block: 1rem; }.nav-links a:not(.nav-install) { display: none; }.brand > span:last-child { max-width: 130px; line-height: 1.1; }
|
|
149
|
+
.hero-layout { padding-block: 4.5rem 5rem; }.hero-facts { gap: 1rem; }.hero-facts div { display: block; }.hero-facts dd { max-width: 72px; }
|
|
150
|
+
.principle-strip .shell { grid-template-columns: 1fr 1fr; }.principle-strip p:nth-child(2) { border-right: 1px solid var(--line); }.principle-strip p:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
|
|
151
|
+
.workflow-tabs button { padding: .8rem .4rem; font-size: .72rem; }.workflow-tabs button span { display: block; margin: 0; }.workflow-details { grid-template-columns: 1fr; }.workflow-details .result-card { grid-column: auto; }
|
|
152
|
+
.command-mode-switch { grid-template-columns: 1fr; }
|
|
153
|
+
.command-reference article { grid-template-columns: 1fr; gap: 1rem; }.options-block dl, .package-parts, .catalog-layout, .install-paths, .other-installation { grid-template-columns: 1fr; }.package-parts article { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); }.package-parts article:last-child { border-bottom: 0; }.package-parts h3 { margin-top: 1.4rem; }.documentation-catalog { grid-column: auto; }
|
|
154
|
+
.prerequisite-check, .installation-maintenance, .install-troubleshooting { grid-template-columns: 1fr; gap: 1rem; }
|
|
155
|
+
.process-list li { grid-template-columns: 48px 1fr; }.trust-grid { grid-template-columns: 1fr; }.trust-grid article { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); }.trust-grid article > span { margin-bottom: 1.5rem; }.trust-grid article:last-child { border-bottom: 0; }
|
|
156
|
+
.footer-layout { grid-template-columns: 1fr; }.footer-layout { gap: 2rem; }.footer-bottom { gap: 1rem; flex-wrap: wrap; }
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
|
|
@@ -19,10 +19,21 @@ Choose exactly one primary workflow for the request: documentation governance, s
|
|
|
19
19
|
|
|
20
20
|
### Documentation governance
|
|
21
21
|
|
|
22
|
-
Read [references/documentation-governance.md](references/documentation-governance.md). Use
|
|
22
|
+
Read [references/documentation-governance.md](references/documentation-governance.md) and only the selected documentation area below. Use them to establish a navigable structure, identify stale or missing material, separate current scope from future ideas, and preserve decision/change history.
|
|
23
23
|
|
|
24
24
|
Documentation controls are governance aids, not an infallible technical lock. Report whether evidence supports the stated process; never claim that Markdown alone enforces agent behavior.
|
|
25
25
|
|
|
26
|
+
## Documentation area references
|
|
27
|
+
|
|
28
|
+
- [01 System Documentation](references/documentation-01-system-documentation.md)
|
|
29
|
+
- [02 Project Governance](references/documentation-02-project-governance.md)
|
|
30
|
+
- [03 Development Records](references/documentation-03-development-records.md)
|
|
31
|
+
- [04 Testing & Evidence](references/documentation-04-testing-evidence.md)
|
|
32
|
+
- [05 Operations & Runbooks](references/documentation-05-operations-runbooks.md)
|
|
33
|
+
- [06 Future Proposals](references/documentation-06-future-proposals.md)
|
|
34
|
+
- [07 Archive Governance](references/documentation-07-archive-governance.md)
|
|
35
|
+
- [Full documentation reference](references/documentation-full-reference.md): use only for cross-area governance work.
|
|
36
|
+
|
|
26
37
|
### Security assurance
|
|
27
38
|
|
|
28
39
|
Read [references/security-protocol.md](references/security-protocol.md), [references/evidence-and-reporting.md](references/evidence-and-reporting.md), and only the selected phase references below.
|
|
@@ -64,6 +75,11 @@ Use `Applied`, `Partial`, `Recommended`, `Unverified`, or `N/A`. Engineering rec
|
|
|
64
75
|
- [07 Cloud Cost Saving](references/engineering-07-cloud-cost-saving.md)
|
|
65
76
|
- [08 Testing Types](references/engineering-08-testing-types.md)
|
|
66
77
|
- [09 Message Queues](references/engineering-09-message-queues.md)
|
|
78
|
+
- [10 API Design & Compatibility](references/engineering-10-api-design-compatibility.md)
|
|
79
|
+
- [11 Reliability, SLOs & Error Budgets](references/engineering-11-reliability-slos.md)
|
|
80
|
+
- [12 Observability & Telemetry](references/engineering-12-observability-telemetry.md)
|
|
81
|
+
- [13 Deployment & Change Safety](references/engineering-13-deployment-change-safety.md)
|
|
82
|
+
- [14 Capacity, Concurrency & Resource Management](references/engineering-14-capacity-concurrency.md)
|
|
67
83
|
- [Full engineering reference](references/engineering-full-reference.md): use only for cross-topic review.
|
|
68
84
|
|
|
69
85
|
## Produce the result
|
|
@@ -75,4 +91,4 @@ Use `Applied`, `Partial`, `Recommended`, `Unverified`, or `N/A`. Engineering rec
|
|
|
75
91
|
5. Summarize blockers first, then non-blocking improvements, then unverified items.
|
|
76
92
|
6. Never expose secrets in output. Redact tokens, credentials, personal data, and sensitive endpoints.
|
|
77
93
|
|
|
78
|
-
Use [assets/security-report.md](assets/security-report.md), [assets/engineering-report.md](assets/engineering-report.md), or [assets/documentation-report.md](assets/documentation-report.md) when writing a report.
|
|
94
|
+
Use [assets/security-report.md](assets/security-report.md), [assets/engineering-report.md](assets/engineering-report.md), or [assets/documentation-report.md](assets/documentation-report.md) when writing a report. Resolve this skill's installation directory, then run its `scripts/check-report.mjs <report>` script to catch invalid statuses and findings without evidence; do not assume the caller's project root contains that script.
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
- Date: {{date}}
|
|
4
4
|
- Reviewer: {{reviewer}}
|
|
5
5
|
|
|
6
|
-
| Document or rule | Status | Evidence | Required update |
|
|
7
|
-
|
|
8
|
-
| | Unverified | | |
|
|
6
|
+
| Document or rule | Status | Evidence | Required update | Owner | Verification |
|
|
7
|
+
|---|---|---|---|---|---|
|
|
8
|
+
| | Unverified | | | Unassigned | Not verified |
|
|
9
9
|
|
|
10
10
|
## Missing or conflicting authorities
|
|
11
11
|
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
- Reviewer: {{reviewer}}
|
|
5
5
|
- Overall status: Unverified
|
|
6
6
|
|
|
7
|
-
| Practice | Status | Evidence | Impact | Recommendation
|
|
8
|
-
|
|
9
|
-
| | Unverified | | | |
|
|
7
|
+
| Practice ID | Status | Evidence | Impact | Recommendation | Owner | Verification |
|
|
8
|
+
|---|---|---|---|---|---|---|
|
|
9
|
+
| | Unverified | | | | Unassigned | Not verified |
|
|
10
10
|
|
|
11
11
|
## Priority recommendations
|
|
12
12
|
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
- Authorized target: {{target}}
|
|
6
6
|
- Overall status: Unverified
|
|
7
7
|
|
|
8
|
-
| Control |
|
|
9
|
-
|
|
10
|
-
| | | Unverified | | |
|
|
8
|
+
| Control ID | Priority | Status | Evidence | Remediation | Owner | Verification |
|
|
9
|
+
|---|---|---|---|---|---|---|
|
|
10
|
+
| | | Unverified | | | Unassigned | Not verified |
|
|
11
11
|
|
|
12
12
|
## Release blockers
|
|
13
13
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# System Documentation
|
|
2
|
+
|
|
3
|
+
Use this area to explain what the system is, where its boundaries are, and how its important parts relate. Prefer durable facts over implementation narration.
|
|
4
|
+
|
|
5
|
+
| Documentation ID | Record | Purpose | Evidence question |
|
|
6
|
+
|---|---|---|---|
|
|
7
|
+
| DOC-01-01 | System overview | Gives new contributors a reliable starting point. | Can a reader identify users, responsibilities, dependencies, and boundaries? |
|
|
8
|
+
| DOC-01-02 | Architecture map | Shows major components and information flow. | Does the map match the deployed system and link to authoritative details? |
|
|
9
|
+
| DOC-01-03 | Data ownership | Prevents ambiguous sources of truth. | Is each important data domain tied to an owner and authoritative store? |
|
|
10
|
+
| DOC-01-04 | External dependencies | Makes operational and security assumptions visible. | Are critical third-party and platform dependencies named with their role? |
|
|
11
|
+
| DOC-01-05 | Trust boundaries | Connects design documentation to security review. | Are identity, network, tenant, and data trust boundaries explicit? |
|
|
12
|
+
| DOC-01-06 | Constraints | Preserves the reasons behind non-obvious architecture. | Are regulatory, performance, compatibility, and organizational constraints recorded? |
|
|
13
|
+
| DOC-01-07 | Ownership | Gives readers a route to clarification. | Does every major subsystem have an accountable owner or team? |
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Project Governance
|
|
2
|
+
|
|
3
|
+
Use this area to keep current scope, decisions, delivery status, and ownership separate from proposals and historical records.
|
|
4
|
+
|
|
5
|
+
| Documentation ID | Record | Purpose | Evidence question |
|
|
6
|
+
|---|---|---|---|
|
|
7
|
+
| DOC-02-01 | Current scope | Prevents future ideas from being mistaken for commitments. | Are included outcomes, exclusions, and success criteria explicit? |
|
|
8
|
+
| DOC-02-02 | Requirements | Connects implementation to accepted needs. | Can each active requirement be traced to an owner and validation method? |
|
|
9
|
+
| DOC-02-03 | Decision records | Preserves context that code cannot explain. | Do material decisions record context, choice, alternatives, and consequences? |
|
|
10
|
+
| DOC-02-04 | Delivery status | Gives readers one current project view. | Is the status dated, owned, and separated from historical updates? |
|
|
11
|
+
| DOC-02-05 | Risk register | Keeps known uncertainty visible. | Are significant delivery risks assigned an owner and response? |
|
|
12
|
+
| DOC-02-06 | Change history | Explains meaningful changes without duplicating Git history. | Are user-visible and operational changes summarized by release? |
|
|
13
|
+
| DOC-02-07 | Authority map | Prevents conflicting sources of truth. | Is the authoritative document identified for each major project concern? |
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Development Records
|
|
2
|
+
|
|
3
|
+
Use this area for implementation guidance and review records that help contributors change the system safely.
|
|
4
|
+
|
|
5
|
+
| Documentation ID | Record | Purpose | Evidence question |
|
|
6
|
+
|---|---|---|---|
|
|
7
|
+
| DOC-03-01 | Development setup | Makes a clean environment reproducible. | Can a contributor reach a verified local state from documented prerequisites? |
|
|
8
|
+
| DOC-03-02 | Repository map | Reduces rediscovery and misplaced changes. | Are important directories, generated files, and ownership boundaries explained? |
|
|
9
|
+
| DOC-03-03 | Coding conventions | Records project-specific rules rather than generic advice. | Are non-obvious conventions linked to automated enforcement where possible? |
|
|
10
|
+
| DOC-03-04 | Change records | Captures intent, validation, and rollback for significant work. | Does each important change explain scope, risk, tests, and deployment result? |
|
|
11
|
+
| DOC-03-05 | Engineering reviews | Retains evidence and recommendations over time. | Are reviews dated, scoped, owned, and linked to follow-up work? |
|
|
12
|
+
| DOC-03-06 | Generated-content policy | Prevents manual edits from being overwritten. | Are source files and regeneration commands clear for every generated artifact? |
|
|
13
|
+
| DOC-03-07 | Contribution workflow | Makes review expectations predictable. | Are branch, review, test, and merge requirements current and discoverable? |
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Testing and Evidence
|
|
2
|
+
|
|
3
|
+
Use this area to connect quality claims to reproducible test plans, results, limitations, and retained evidence.
|
|
4
|
+
|
|
5
|
+
| Documentation ID | Record | Purpose | Evidence question |
|
|
6
|
+
|---|---|---|---|
|
|
7
|
+
| DOC-04-01 | Test strategy | Explains which risks each test layer addresses. | Are unit, integration, contract, end-to-end, and manual responsibilities explicit? |
|
|
8
|
+
| DOC-04-02 | Test plans | Defines scope and expected outcomes before execution. | Does each material test pass name environment, inputs, procedure, and acceptance criteria? |
|
|
9
|
+
| DOC-04-03 | Evidence records | Makes results independently understandable. | Can a reviewer connect a claim to dated, reproducible evidence? |
|
|
10
|
+
| DOC-04-04 | Security reviews | Separates generated worksheets from verified findings. | Are authorization, target, status, evidence, owner, and verification recorded? |
|
|
11
|
+
| DOC-04-05 | Known limitations | Prevents incomplete coverage from appearing complete. | Are unavailable environments, skipped checks, and confidence limits explicit? |
|
|
12
|
+
| DOC-04-06 | Defect traceability | Connects failures to remediation and retesting. | Can every material failure be traced to an owner and verification result? |
|
|
13
|
+
| DOC-04-07 | Retention policy | Preserves useful evidence without retaining sensitive data indefinitely. | Are evidence location, access, redaction, and retention expectations defined? |
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Operations and Runbooks
|
|
2
|
+
|
|
3
|
+
Use this area for the procedures and context needed to deploy, observe, recover, and safely operate the system.
|
|
4
|
+
|
|
5
|
+
| Documentation ID | Record | Purpose | Evidence question |
|
|
6
|
+
|---|---|---|---|
|
|
7
|
+
| DOC-05-01 | Deployment procedure | Makes releases repeatable and reviewable. | Are prerequisites, promotion, verification, rollback, and ownership documented? |
|
|
8
|
+
| DOC-05-02 | Configuration guide | Prevents hidden environment assumptions. | Are required settings described without publishing secret values? |
|
|
9
|
+
| DOC-05-03 | Observability guide | Helps operators connect signals to user impact. | Are dashboards, alerts, logs, traces, and known gaps discoverable? |
|
|
10
|
+
| DOC-05-04 | Operational runbooks | Turns alerts and recurring tasks into safe procedures. | Does each runbook include access, steps, verification, rollback, and escalation? |
|
|
11
|
+
| DOC-05-05 | Incident response | Establishes roles and communication before failure. | Are severity, command, escalation, evidence preservation, and review practices clear? |
|
|
12
|
+
| DOC-05-06 | Recovery procedure | Converts backup claims into tested recovery capability. | Are recovery objectives, restore steps, dependencies, and test results current? |
|
|
13
|
+
| DOC-05-07 | Support ownership | Avoids dead ends during urgent work. | Are service ownership, on-call expectations, and escalation contacts maintained safely? |
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Future Proposals
|
|
2
|
+
|
|
3
|
+
Use this area for ideas that have not entered current scope. A proposal is not a commitment until it is accepted through the project’s decision process.
|
|
4
|
+
|
|
5
|
+
| Documentation ID | Record | Purpose | Evidence question |
|
|
6
|
+
|---|---|---|---|
|
|
7
|
+
| DOC-06-01 | Problem statement | Keeps proposals grounded in a real need. | Is the affected user, problem, and supporting evidence clear? |
|
|
8
|
+
| DOC-06-02 | Proposed outcome | Describes value without prematurely fixing implementation. | Is the desired outcome measurable and distinct from a chosen solution? |
|
|
9
|
+
| DOC-06-03 | Options | Preserves alternatives and tradeoffs. | Are credible alternatives, including doing nothing, compared fairly? |
|
|
10
|
+
| DOC-06-04 | Dependencies | Exposes prerequisites and external decisions. | Are technical, organizational, data, and vendor dependencies named? |
|
|
11
|
+
| DOC-06-05 | Risks and cost | Prevents benefits from hiding lifecycle costs. | Are delivery, operational, security, migration, and maintenance costs considered? |
|
|
12
|
+
| DOC-06-06 | Decision state | Stops unapproved work from appearing committed. | Is the proposal clearly marked proposed, accepted, rejected, deferred, or superseded? |
|
|
13
|
+
| DOC-06-07 | Promotion path | Defines how an accepted idea becomes current scope. | Does acceptance identify the decision record, owner, milestone, and documents to update? |
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Archive Governance
|
|
2
|
+
|
|
3
|
+
Use this area to retain useful history without allowing superseded material to compete with current documentation.
|
|
4
|
+
|
|
5
|
+
| Documentation ID | Record | Purpose | Evidence question |
|
|
6
|
+
|---|---|---|---|
|
|
7
|
+
| DOC-07-01 | Archive criteria | Makes retirement consistent. | Is material archived only when it is superseded, obsolete, or retained for traceability? |
|
|
8
|
+
| DOC-07-02 | Archive metadata | Explains why an old record remains. | Does each archived item identify archive date, reason, and responsible owner? |
|
|
9
|
+
| DOC-07-03 | Replacement links | Routes readers back to current authority. | Does superseded material link to its replacement when one exists? |
|
|
10
|
+
| DOC-07-04 | Search separation | Prevents stale guidance from dominating discovery. | Are archives clearly separated and labeled in navigation and search? |
|
|
11
|
+
| DOC-07-05 | Decision retention | Preserves context for consequential choices. | Are material decisions retained according to legal and project needs? |
|
|
12
|
+
| DOC-07-06 | Sensitive-data review | Prevents archives from becoming unmanaged exposure. | Are secrets, personal data, and unnecessary operational details removed or access-controlled? |
|
|
13
|
+
| DOC-07-07 | Periodic review | Avoids permanent accumulation without purpose. | Are retention obligations and deletion candidates reviewed on a defined cadence? |
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Documentation Governance Reference
|
|
2
|
+
|
|
3
|
+
This index routes documentation work to the smallest relevant area. The seven area files are canonical. Project-specific records are created from templates and checked against `.agent-docs/config.json`.
|
|
4
|
+
|
|
5
|
+
## Governance contract
|
|
6
|
+
|
|
7
|
+
- Identify one authoritative source for each important concern.
|
|
8
|
+
- Record owner, status, last review date, and review due date when metadata is required.
|
|
9
|
+
- Separate current facts and commitments from proposals and archives.
|
|
10
|
+
- Link claims to repository or operational evidence instead of assuming completeness.
|
|
11
|
+
- Prefer concise navigation and focused documents over one unbounded handbook.
|
|
12
|
+
- Treat generated reports as evidence containers, not proof that checks passed.
|
|
13
|
+
|
|
14
|
+
## Area index
|
|
15
|
+
|
|
16
|
+
1. System documentation
|
|
17
|
+
2. Project governance
|
|
18
|
+
3. Development records
|
|
19
|
+
4. Testing and evidence
|
|
20
|
+
5. Operations and runbooks
|
|
21
|
+
6. Future proposals
|
|
22
|
+
7. Archive governance
|
|
23
|
+
|
|
24
|
+
Run `agent-docs list documentation` to discover selectors. Use `agent-docs audit documentation --strict` to check the configured project record.
|
|
@@ -20,7 +20,7 @@ docs/
|
|
|
20
20
|
security-audits/
|
|
21
21
|
evidence/
|
|
22
22
|
05-operations/
|
|
23
|
-
06-future-
|
|
23
|
+
06-future-proposals/
|
|
24
24
|
archive/
|
|
25
25
|
```
|
|
26
26
|
|
|
@@ -36,4 +36,4 @@ Keep the layout proportional to the project. Do not create empty documents merel
|
|
|
36
36
|
|
|
37
37
|
## Change records
|
|
38
38
|
|
|
39
|
-
Record what changed, why it changed, files affected, validation performed, and approval when required by the project. Prefer commit-linked records. Treat a
|
|
39
|
+
Record what changed, why it changed, files affected, validation performed, and approval when required by the project. Prefer commit-linked records. Treat a "change freeze" as a declared collaboration policy unless a technical hook or CI rule actually enforces it.
|
|
@@ -1,48 +1,38 @@
|
|
|
1
1
|
# Query Performance & Slow Query Diagnosis
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## Engineering Topic 1: Query Performance & Slow Query Diagnosis
|
|
4
4
|
|
|
5
5
|
**When to run this:** When a query, endpoint, or report is running slower than expected, or before shipping a new query against a table that will grow.
|
|
6
6
|
|
|
7
7
|
**Goal of this pass:** Work through the standard diagnostic order for a slow query instead of guessing at fixes — read the plan first, fix the cheapest thing, and don't reach for denormalization until indexing is exhausted.
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## How to use this reference
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|---|---|
|
|
13
|
-
| `CHECKLIST.md` | The reference list of concepts for this topic — what each one is, why it matters, and the self-check question to ask. Doesn't get filled in; copy `RESULTS_TEMPLATE.md` to record a real pass. |
|
|
14
|
-
| `RESULTS_TEMPLATE.md` | Fillable version of the same list, with a Status column and notes. Copy this file per pass (e.g. `RESULTS_2026-08-29.md`) so history isn't overwritten. |
|
|
15
|
-
|
|
16
|
-
Full source list lives in `../ENGINEERING_REFERENCE.md`. Unlike
|
|
17
|
-
`../../security-gate/phases/`, this is knowledge/practice review, not pass/fail security
|
|
18
|
-
testing — there's no severity rating, and "Fail" isn't the right framing.
|
|
19
|
-
Use the Status options in `RESULTS_TEMPLATE.md` instead: Applied, Partial,
|
|
20
|
-
Should adopt, or Not applicable.
|
|
11
|
+
Use each stable practice ID in a generated engineering worksheet. Record concrete evidence and choose Applied, Partial, Recommended, Unverified, or N/A. Preserve each dated worksheet as review history.
|
|
21
12
|
|
|
22
13
|
## Wrap-up
|
|
23
14
|
|
|
24
15
|
- This isn't a gate — nothing here blocks a release the way
|
|
25
|
-
Critical/High security items in
|
|
16
|
+
Critical/High security items in security phase reviews do.
|
|
26
17
|
- Total concepts in this topic: 10
|
|
27
18
|
- Useful as an onboarding read-through, a periodic self-audit, or context
|
|
28
19
|
to hand an agent before it reviews related code.
|
|
29
20
|
|
|
30
21
|
---
|
|
31
22
|
|
|
32
|
-
|
|
23
|
+
## Concepts — Topic 1: Query Performance & Slow Query Diagnosis
|
|
33
24
|
|
|
34
|
-
|
|
35
|
-
this same folder to actually record a pass.
|
|
25
|
+
Use the applicable practices below to populate the worksheet findings table.
|
|
36
26
|
|
|
37
|
-
|
|
|
27
|
+
| Practice ID | Practice | Why it matters | Evidence question |
|
|
38
28
|
|---|---|---|---|
|
|
39
|
-
|
|
|
40
|
-
|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
| 10 | Update table statistics | A stale planner (out-of-date row-count/distribution stats) can pick a bad plan even with the right indexes present. | Are table statistics refreshed on a schedule (ANALYZE / equivalent), especially after large data changes? |
|
|
29
|
+
| ENG-01-01 | Start with the explain plan | Reveals whether the DB is scanning, sorting, or joining in a way that doesn't match intent — guessing at fixes without this wastes time. | Have you run EXPLAIN (or EXPLAIN ANALYZE) on the slow query and read where the time actually goes? |
|
|
30
|
+
| ENG-01-02 | Add the missing index | Full table scans get linearly worse as data grows; the right index turns O(n) into O(log n). | Does the WHERE/JOIN/ORDER BY column set have a supporting index? |
|
|
31
|
+
| ENG-01-03 | Stop selecting * | Pulling unused columns wastes I/O and network, and can defeat a covering index. | Does the query request only the columns actually used downstream? |
|
|
32
|
+
| ENG-01-04 | Fix N+1 queries | One query per row in a loop turns a single request into hundreds; batching/joining collapses it back to one or few. | Does any code path issue a query inside a loop over another query's results? |
|
|
33
|
+
| ENG-01-05 | Use a covering index | An index that includes all selected columns lets the DB answer from the index alone, skipping the table lookup. | For hot read queries, does the index include every column the query selects? |
|
|
34
|
+
| ENG-01-06 | Cache repeated queries | Identical, expensive, low-volatility queries don't need to hit the DB every time. | Are the same expensive read queries re-run frequently with unchanged results, and if so, are they cached? |
|
|
35
|
+
| ENG-01-07 | Prune partitions | Partition pruning lets the DB skip irrelevant partitions entirely instead of scanning the whole table. | For large time-series/partitioned tables, does the query filter on the partition key so pruning can kick in? |
|
|
36
|
+
| ENG-01-08 | Denormalize for reads | Trading write complexity/redundancy for fewer joins can be the right call once indexing alone isn't enough. | Has indexing been exhausted before reaching for denormalization, and is the redundancy kept in sync deliberately? |
|
|
37
|
+
| ENG-01-09 | Batch your writes | Many small write round-trips cost more in overhead than one larger batched write. | Are writes that happen together (e.g. in a loop or transaction) batched instead of issued one at a time? |
|
|
38
|
+
| ENG-01-10 | Update table statistics | A stale planner (out-of-date row-count/distribution stats) can pick a bad plan even with the right indexes present. | Are table statistics refreshed on a schedule (ANALYZE / equivalent), especially after large data changes? |
|
|
@@ -1,48 +1,38 @@
|
|
|
1
1
|
# Networking Fundamentals
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## Engineering Topic 2: Networking Fundamentals
|
|
4
4
|
|
|
5
5
|
**When to run this:** When debugging connectivity, latency, or TLS issues, or before making infra decisions (load balancer, CDN, multi-region) that depend on understanding the network path.
|
|
6
6
|
|
|
7
7
|
**Goal of this pass:** Confirm the team can reason about what happens between a client request and a server response — not memorize trivia, but recognize which layer a given production issue actually lives in.
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## How to use this reference
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|---|---|
|
|
13
|
-
| `CHECKLIST.md` | The reference list of concepts for this topic — what each one is, why it matters, and the self-check question to ask. Doesn't get filled in; copy `RESULTS_TEMPLATE.md` to record a real pass. |
|
|
14
|
-
| `RESULTS_TEMPLATE.md` | Fillable version of the same list, with a Status column and notes. Copy this file per pass (e.g. `RESULTS_2026-08-29.md`) so history isn't overwritten. |
|
|
15
|
-
|
|
16
|
-
Full source list lives in `../ENGINEERING_REFERENCE.md`. Unlike
|
|
17
|
-
`../../security-gate/phases/`, this is knowledge/practice review, not pass/fail security
|
|
18
|
-
testing — there's no severity rating, and "Fail" isn't the right framing.
|
|
19
|
-
Use the Status options in `RESULTS_TEMPLATE.md` instead: Applied, Partial,
|
|
20
|
-
Should adopt, or Not applicable.
|
|
11
|
+
Use each stable practice ID in a generated engineering worksheet. Record concrete evidence and choose Applied, Partial, Recommended, Unverified, or N/A. Preserve each dated worksheet as review history.
|
|
21
12
|
|
|
22
13
|
## Wrap-up
|
|
23
14
|
|
|
24
15
|
- This isn't a gate — nothing here blocks a release the way
|
|
25
|
-
Critical/High security items in
|
|
16
|
+
Critical/High security items in security phase reviews do.
|
|
26
17
|
- Total concepts in this topic: 10
|
|
27
18
|
- Useful as an onboarding read-through, a periodic self-audit, or context
|
|
28
19
|
to hand an agent before it reviews related code.
|
|
29
20
|
|
|
30
21
|
---
|
|
31
22
|
|
|
32
|
-
|
|
23
|
+
## Concepts — Topic 2: Networking Fundamentals
|
|
33
24
|
|
|
34
|
-
|
|
35
|
-
this same folder to actually record a pass.
|
|
25
|
+
Use the applicable practices below to populate the worksheet findings table.
|
|
36
26
|
|
|
37
|
-
|
|
|
27
|
+
| Practice ID | Practice | Why it matters | Evidence question |
|
|
38
28
|
|---|---|---|---|
|
|
39
|
-
|
|
|
40
|
-
|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
| 10 | BGP routing | Explains internet-scale outages and route leaks — usually outside your control, but recognizable when it's the actual cause. | When a broad, upstream-looking outage occurs, is BGP/routing considered as a possible cause rather than assumed to be your infra? |
|
|
29
|
+
| ENG-02-01 | DNS resolution | Wrong TTLs or stale records cause outages/slow failover that look like application bugs. | Do you know your DNS TTLs and what happens on a DNS provider outage or a failed cutover? |
|
|
30
|
+
| ENG-02-02 | TCP handshake | SYN/SYN-ACK/ACK latency adds to every new connection; connection reuse avoids paying it repeatedly. | Are connections being reused (keep-alive/pooling) where the handshake cost matters? |
|
|
31
|
+
| ENG-02-03 | TLS handshake | Adds round trips and CPU cost on top of TCP; session resumption and TLS version choice affect both. | Is TLS session resumption enabled, and is the minimum TLS version intentionally set? |
|
|
32
|
+
| ENG-02-04 | NAT | Explains why a server sees one client IP for many real users, and why some P2P/inbound-connection patterns don't work as expected. | Does any rate-limiting or per-client logic depend on client IP, and does it account for NAT'd clients sharing an IP? |
|
|
33
|
+
| ENG-02-05 | Load balancer types | L4 vs L7 balancers differ in what they can inspect and route on (raw TCP vs HTTP headers/paths). | Does the current load balancer type actually support the routing/health-check behavior the app needs? |
|
|
34
|
+
| ENG-02-06 | CDN edge caching | Wrong cache-control headers cause either stale content served for too long or origin overload from no caching at all. | Are cache-control/CDN cache-key rules deliberately set per route, not left at CDN defaults? |
|
|
35
|
+
| ENG-02-07 | Packet loss & retransmit | Retransmits show up as latency and timeouts that look application-side but are actually network-layer. | When debugging intermittent slowness, has packet loss been ruled out before blaming application code? |
|
|
36
|
+
| ENG-02-08 | MTU / fragmentation | Oversized packets get fragmented or dropped, which shows up as weird partial-failure behavior, especially over VPNs/tunnels. | Has MTU mismatch been considered for any VPN, tunnel, or container network path in play? |
|
|
37
|
+
| ENG-02-09 | Keep-alive | Persistent connections avoid the handshake cost per request but tie up server resources if left open too long. | Are keep-alive timeouts tuned deliberately on both client and server, not left at framework defaults? |
|
|
38
|
+
| ENG-02-10 | BGP routing | Explains internet-scale outages and route leaks — usually outside your control, but recognizable when it's the actual cause. | When a broad, upstream-looking outage occurs, is BGP/routing considered as a possible cause rather than assumed to be your infra? |
|