mirror of
https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools.git
synced 2026-06-18 15:29:36 +00:00
Saves the DEALIX_PHASE2_EXECUTION_WAVES.md 90-day plan and scaffolds every
artifact the coding agent can produce. Wave A-E execution is explicitly
blocked until the Week-12 Phase Gate (§3) returns Green.
Added:
§1 Verification Protocol (V001-V007)
- scripts/v001_secret_scan.sh — trufflehog + gitleaks full-history scan
- backend/tests/security/test_rls_fuzz.py — 10K cross-tenant fuzz
- docs/verification/V003_pentest_engagement.md — vendor RFP + scope
- docs/verification/V004_no_founder_demo_test.md — 3-tester protocol
- scripts/v005_truth_registry_audit.py — independent audit tool
- infra/load-tests/baseline.js — k6 perf baseline
- frontend/tests/a11y/baseline.spec.ts — Playwright+axe baseline
- docs/baselines/README.md + docs/verification/README.md
§2 Founder Decision Sprint (FD001-FD005)
- docs/internal/legal_entity_decision.md — MISA/DIFC/Delaware brief
- docs/internal/trademark_status.md — SAIP filing kit tracker
- docs/hiring/{design_engineer, backend_engineer, head_of_cs}.md
§3 Customer Validation (CV001-CV004)
- docs/customer_learnings/pilot_agreement_template.md
- docs/customer_learnings/pilot_template/success_criteria.md
- docs/customer_learnings/pilot_template/kickoff_checklist.md
- docs/customer_learnings/friction_log.md + feature_requests.yaml
- docs/customer_learnings/weekly_review_template.md
Truth registry updates
- docs/registry/TRUTH.yaml — new verification_protocol,
founder_decision_sprint, customer_validation sections
Gates (post-change):
architecture_brief.py 40/40
release_readiness_matrix 94/94 (added 30 new scaffold checks)
v005_truth_registry_audit 19/19 SUPPORTED
86 lines
2.8 KiB
JavaScript
86 lines
2.8 KiB
JavaScript
// V006 — Performance Baseline (k6)
|
|
//
|
|
// Run against STAGING with production-like data volume (~50K deals,
|
|
// ~10K leads, ~5K evidence packs).
|
|
//
|
|
// Usage:
|
|
// k6 run infra/load-tests/baseline.js \
|
|
// --env STAGING_URL=https://staging.dealix.sa \
|
|
// --env JWT="eyJhbGciOi..." \
|
|
// --summary-export=docs/baselines/perf_$(date +%Y%m%d).json
|
|
//
|
|
// Output lands at docs/baselines/perf_YYYYMMDD.json — every future
|
|
// perf claim references THIS baseline. No "faster than X" without it.
|
|
|
|
import http from 'k6/http';
|
|
import { check, sleep } from 'k6';
|
|
import { Trend, Rate } from 'k6/metrics';
|
|
|
|
const STAGING_URL = __ENV.STAGING_URL || 'http://localhost:8000';
|
|
const JWT = __ENV.JWT || '';
|
|
|
|
const p95_golden_path = new Trend('p95_golden_path_ms');
|
|
const p95_weekly_pack = new Trend('p95_weekly_pack_ms');
|
|
const p95_approval_center = new Trend('p95_approval_center_ms');
|
|
const errors = new Rate('errors');
|
|
|
|
export const options = {
|
|
stages: [
|
|
{ duration: '30s', target: 10 }, // warm-up
|
|
{ duration: '2m', target: 50 }, // ramp to typical load
|
|
{ duration: '2m', target: 200 }, // peak
|
|
{ duration: '1m', target: 0 }, // cool-down
|
|
],
|
|
thresholds: {
|
|
'http_req_duration{name:golden_path}': ['p(95)<2000'], // 2s budget
|
|
'http_req_duration{name:weekly_pack}': ['p(95)<1500'], // 1.5s budget
|
|
'http_req_duration{name:approval_center}': ['p(95)<800'], // 800ms budget
|
|
'errors': ['rate<0.01'], // <1% errors
|
|
},
|
|
};
|
|
|
|
const H = {
|
|
'Authorization': `Bearer ${JWT}`,
|
|
'Content-Type': 'application/json',
|
|
};
|
|
|
|
export default function () {
|
|
// 1. Golden Path (heaviest endpoint)
|
|
const r1 = http.post(
|
|
`${STAGING_URL}/api/v1/golden-path/run`,
|
|
JSON.stringify({ partner_name: `LoadTest-${__VU}-${__ITER}` }),
|
|
{ headers: H, tags: { name: 'golden_path' } },
|
|
);
|
|
p95_golden_path.add(r1.timings.duration);
|
|
errors.add(r1.status !== 200);
|
|
check(r1, { 'golden path 200': (r) => r.status === 200 });
|
|
|
|
// 2. Weekly Exec Pack
|
|
const r2 = http.get(
|
|
`${STAGING_URL}/api/v1/executive-room/weekly-pack`,
|
|
{ headers: H, tags: { name: 'weekly_pack' } },
|
|
);
|
|
p95_weekly_pack.add(r2.timings.duration);
|
|
errors.add(r2.status !== 200);
|
|
check(r2, { 'weekly pack 200': (r) => r.status === 200 });
|
|
|
|
// 3. Approval Center list
|
|
const r3 = http.get(
|
|
`${STAGING_URL}/api/v1/approval-center/pending`,
|
|
{ headers: H, tags: { name: 'approval_center' } },
|
|
);
|
|
p95_approval_center.add(r3.timings.duration);
|
|
errors.add(r3.status !== 200);
|
|
check(r3, { 'approval center 200': (r) => r.status === 200 });
|
|
|
|
sleep(1);
|
|
}
|
|
|
|
export function handleSummary(data) {
|
|
const date = new Date().toISOString().slice(0, 10).replace(/-/g, '');
|
|
return {
|
|
[`docs/baselines/perf_${date}.json`]: JSON.stringify(data, null, 2),
|
|
stdout: `\nV006 baseline written to docs/baselines/perf_${date}.json\n`,
|
|
};
|
|
}
|