550 lines
26 KiB
HTML
550 lines
26 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<title>Amanat Taskmaster Queue</title>
|
|
<style>
|
|
:root {
|
|
--ink: #172018;
|
|
--muted: #667064;
|
|
--paper: #fbf6e8;
|
|
--panel: #fffdf5;
|
|
--line: #ded5bd;
|
|
--green: #1c7c54;
|
|
--amber: #b7791f;
|
|
--red: #b42318;
|
|
--blue: #245b84;
|
|
--shadow: 0 18px 60px rgba(39, 32, 18, 0.14);
|
|
}
|
|
* { box-sizing: border-box; }
|
|
body {
|
|
margin: 0;
|
|
font-family: ui-serif, Georgia, Cambria, "Times New Roman", serif;
|
|
color: var(--ink);
|
|
background:
|
|
radial-gradient(circle at 15% 10%, rgba(28, 124, 84, 0.18), transparent 28rem),
|
|
radial-gradient(circle at 90% 5%, rgba(183, 121, 31, 0.16), transparent 24rem),
|
|
linear-gradient(135deg, #f7efd9 0%, #fbf6e8 48%, #edf4ea 100%);
|
|
min-height: 100vh;
|
|
}
|
|
header {
|
|
padding: 48px clamp(18px, 4vw, 64px) 28px;
|
|
border-bottom: 1px solid rgba(80, 67, 41, 0.18);
|
|
}
|
|
.hero {
|
|
max-width: 1180px;
|
|
margin: 0 auto;
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1.3fr) minmax(280px, 0.7fr);
|
|
gap: 28px;
|
|
align-items: end;
|
|
}
|
|
h1 {
|
|
font-size: clamp(2.4rem, 6vw, 5.8rem);
|
|
line-height: 0.9;
|
|
letter-spacing: -0.06em;
|
|
margin: 0;
|
|
}
|
|
.lead {
|
|
color: var(--muted);
|
|
font-size: 1.1rem;
|
|
max-width: 760px;
|
|
line-height: 1.65;
|
|
margin: 22px 0 0;
|
|
}
|
|
.stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 12px;
|
|
}
|
|
.stat {
|
|
background: rgba(255, 253, 245, 0.78);
|
|
border: 1px solid var(--line);
|
|
border-radius: 22px;
|
|
padding: 18px;
|
|
box-shadow: var(--shadow);
|
|
}
|
|
.stat strong { display: block; font-size: 2.1rem; line-height: 1; }
|
|
.stat span { color: var(--muted); font-size: 0.9rem; }
|
|
main {
|
|
max-width: 1180px;
|
|
margin: 0 auto;
|
|
padding: 28px clamp(18px, 4vw, 64px) 64px;
|
|
}
|
|
.toolbar {
|
|
display: flex;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
margin-bottom: 22px;
|
|
}
|
|
input, select, a.button {
|
|
border: 1px solid var(--line);
|
|
background: rgba(255, 253, 245, 0.86);
|
|
border-radius: 999px;
|
|
padding: 12px 16px;
|
|
color: var(--ink);
|
|
font: inherit;
|
|
text-decoration: none;
|
|
}
|
|
input { min-width: min(100%, 360px); flex: 1; }
|
|
.task {
|
|
background: rgba(255, 253, 245, 0.9);
|
|
border: 1px solid var(--line);
|
|
border-radius: 30px;
|
|
padding: clamp(20px, 3vw, 32px);
|
|
box-shadow: var(--shadow);
|
|
margin: 18px 0;
|
|
}
|
|
.task-head, .subtask-top {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
align-items: flex-start;
|
|
}
|
|
.eyebrow {
|
|
color: var(--green);
|
|
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
margin: 0 0 6px;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.12em;
|
|
font-size: 0.78rem;
|
|
}
|
|
h2 { font-size: clamp(1.45rem, 3vw, 2.4rem); line-height: 1; margin: 0; letter-spacing: -0.035em; }
|
|
h3 { margin: 24px 0 10px; }
|
|
.desc, details p, .subtask p { color: var(--muted); line-height: 1.55; }
|
|
details {
|
|
border-top: 1px solid var(--line);
|
|
border-bottom: 1px solid var(--line);
|
|
padding: 14px 0;
|
|
margin-top: 18px;
|
|
}
|
|
summary { cursor: pointer; color: var(--blue); font-weight: 700; }
|
|
.badges { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
|
|
.badge {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
border-radius: 999px;
|
|
padding: 5px 10px;
|
|
font: 700 0.78rem/1 ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
background: #ece5d2;
|
|
color: var(--ink);
|
|
margin-left: 6px;
|
|
white-space: nowrap;
|
|
}
|
|
.done { background: rgba(28, 124, 84, 0.13); color: var(--green); }
|
|
.pending { background: rgba(183, 121, 31, 0.14); color: var(--amber); }
|
|
.in-progress { background: rgba(36, 91, 132, 0.13); color: var(--blue); }
|
|
.blocked, .critical { background: rgba(180, 35, 24, 0.12); color: var(--red); }
|
|
.priority-high { background: rgba(180, 35, 24, 0.12); color: var(--red); }
|
|
.priority-medium { background: rgba(183, 121, 31, 0.14); color: var(--amber); }
|
|
.priority-low { background: rgba(102, 112, 100, 0.12); color: var(--muted); }
|
|
.subtasks { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
|
|
.subtask {
|
|
border: 1px solid rgba(80, 67, 41, 0.16);
|
|
border-radius: 18px;
|
|
padding: 14px;
|
|
background: rgba(247, 239, 217, 0.48);
|
|
}
|
|
.sub-id {
|
|
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
color: var(--green);
|
|
font-weight: 800;
|
|
min-width: 42px;
|
|
}
|
|
.deps { font-size: 0.9rem; color: var(--blue) !important; }
|
|
footer { color: var(--muted); text-align: center; padding: 30px; }
|
|
@media (max-width: 760px) {
|
|
.hero { grid-template-columns: 1fr; }
|
|
.stats { grid-template-columns: repeat(2, 1fr); }
|
|
.task-head, .subtask-top { flex-direction: column; }
|
|
.badges { justify-content: flex-start; }
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<header>
|
|
<section class="hero">
|
|
<div>
|
|
<p class="eyebrow">Amanat docs · Taskmaster</p>
|
|
<h1>Developer task queue</h1>
|
|
<p class="lead">A shareable static view of the docs-side Taskmaster queue generated from the PRDs and latest backend security/refactor audit. Use this page for planning; use Taskmaster CLI for status updates.</p>
|
|
</div>
|
|
<aside class="stats">
|
|
<div class="stat"><strong>4</strong><span>parent tasks</span></div>
|
|
<div class="stat"><strong>26</strong><span>subtasks</span></div>
|
|
<div class="stat"><strong>26</strong><span>pending items</span></div>
|
|
<div class="stat"><strong>4</strong><span>done items</span></div>
|
|
</aside>
|
|
</section>
|
|
</header>
|
|
<main>
|
|
<div class="toolbar">
|
|
<input id="search" type="search" placeholder="Search tasks, subtasks, PRDs..." />
|
|
<select id="status"><option value="">All statuses</option><option>pending</option><option>done</option><option>in-progress</option><option>blocked</option></select>
|
|
<select id="priority"><option value="">All priorities</option><option>high</option><option>medium</option><option>low</option></select>
|
|
<a class="button" href="tasks.json">Raw JSON</a>
|
|
</div>
|
|
<section id="tasks">
|
|
<article class="task" data-status="pending" data-priority="high">
|
|
<div class="task-head">
|
|
<div>
|
|
<p class="eyebrow">Task 2</p>
|
|
<h2>Implement platform audit remediation plan</h2>
|
|
</div>
|
|
<div class="badges"><span class="badge pending">pending</span><span class="badge priority-high">high</span></div>
|
|
</div>
|
|
<p class="desc">Address the code-backed security and consistency issues identified in the 2026-05-24 platform audit remediation PRD.</p>
|
|
<details>
|
|
<summary>Details and test strategy</summary>
|
|
<p>Source PRD: .taskmaster/docs/prd-platform-audit-remediation-plan-2026-05-24.md. Target backend hardening first, then documentation/runtime alignment. Delivery order suggested by PRD: security/auth, rate limiting, passkeys, Web3 verification, socket hardening, dispute hold controls, docs/API alignment.</p>
|
|
<p><strong>Test strategy:</strong> Add focused regression tests for route auth/ownership, passkey challenge/verification, Web3 verification semantics, socket authorization, rate limiting tiers, and payout/release dispute holds. Update API docs after behavior is implemented.</p>
|
|
|
|
</details>
|
|
<h3>Subtasks (7)</h3>
|
|
<ul class="subtasks">
|
|
<li class="subtask" data-status="pending" data-priority="high">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">2.1</span>
|
|
<strong>Secure unauthenticated endpoints and owner enforcement</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-high">high</span>
|
|
</div>
|
|
<p>Require authenticateToken and owner/admin checks on exposed payment, AI, and legacy notification routes.</p>
|
|
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="high">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">2.2</span>
|
|
<strong>Re-enable and scope rate limiting</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-high">high</span>
|
|
</div>
|
|
<p>Restore global and route-tiered rate limits for public-sensitive paths.</p>
|
|
<p class="deps">Depends on: 2.1</p>
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="high">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">2.3</span>
|
|
<strong>Replace stubbed passkey/WebAuthn flow</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-high">high</span>
|
|
</div>
|
|
<p>Implement production-grade WebAuthn registration/authentication and shared challenge storage.</p>
|
|
<p class="deps">Depends on: 2.1</p>
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="high">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">2.4</span>
|
|
<strong>Strengthen DePay/Web3 payment verification</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-high">high</span>
|
|
</div>
|
|
<p>Verify transaction recipient, token contract, and amount, not only receipt success.</p>
|
|
<p class="deps">Depends on: 2.1</p>
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="medium">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">2.5</span>
|
|
<strong>Lock Socket.IO room joins to authenticated context</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-medium">medium</span>
|
|
</div>
|
|
<p>Remove trust in client-supplied user/buyer/seller room IDs.</p>
|
|
<p class="deps">Depends on: 2.1</p>
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="medium">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">2.6</span>
|
|
<strong>Enforce dispute hold before payout and release operations</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-medium">medium</span>
|
|
</div>
|
|
<p>Add payment hold state and central release/refund guards that block disputed funds.</p>
|
|
<p class="deps">Depends on: 2.1, 2.4</p>
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="medium">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">2.7</span>
|
|
<strong>Align documentation, API references, and runtime enums</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-medium">medium</span>
|
|
</div>
|
|
<p>Normalize disputed/payment/request status docs and implementation references after security behavior changes.</p>
|
|
<p class="deps">Depends on: 2.1, 2.2, 2.3, 2.4, 2.5, 2.6</p>
|
|
</li></ul>
|
|
</article>
|
|
|
|
<article class="task" data-status="pending" data-priority="high">
|
|
<div class="task-head">
|
|
<div>
|
|
<p class="eyebrow">Task 3</p>
|
|
<h2>Migrate payment architecture toward Request Network and internal funds management</h2>
|
|
</div>
|
|
<div class="badges"><span class="badge pending">pending</span><span class="badge priority-high">high</span></div>
|
|
</div>
|
|
<p class="desc">Plan and implement provider-neutral payment flows, Request Network pay-in support, funds ledger, webhook reconciliation, release/refund orchestration, UI migration, and SHKeeper decommissioning.</p>
|
|
<details>
|
|
<summary>Details and test strategy</summary>
|
|
<p>Source PRD: .taskmaster/docs/prd-request-network-migration-and-funds-management.md. The PRD recommends phased migration behind a provider adapter, Secure Payment Pages first, platform-controlled escrow/payee destination, and a first-class internal funds ledger before release/refund enforcement.</p>
|
|
<p><strong>Test strategy:</strong> Use feature flags, provider fixture tests, webhook signature/idempotency tests, ledger invariant tests, migration dry-run reports, and limited cohort rollout before default provider switch.</p>
|
|
<p><strong>Depends on:</strong> 2</p>
|
|
</details>
|
|
<h3>Subtasks (7)</h3>
|
|
<ul class="subtasks">
|
|
<li class="subtask" data-status="pending" data-priority="high">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">3.1</span>
|
|
<strong>Introduce provider-neutral payment adapter</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-high">high</span>
|
|
</div>
|
|
<p>Decouple checkout, webhook, and payout flows from SHKeeper-specific routes and metadata.</p>
|
|
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="high">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">3.2</span>
|
|
<strong>Implement Request Network pay-in integration</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-high">high</span>
|
|
</div>
|
|
<p>Create Request Network payment requests or Secure Payment Pages for new checkout flows.</p>
|
|
<p class="deps">Depends on: 3.1</p>
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="high">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">3.3</span>
|
|
<strong>Add funds ledger and escrow state machine</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-high">high</span>
|
|
</div>
|
|
<p>Introduce internal funds accounting independent from provider metadata.</p>
|
|
<p class="deps">Depends on: 3.1</p>
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="high">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">3.4</span>
|
|
<strong>Build Request Network webhook and reconciliation service</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-high">high</span>
|
|
</div>
|
|
<p>Process signed Request Network events and repair missed webhook state through reconciliation.</p>
|
|
<p class="deps">Depends on: 3.2, 3.3</p>
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="high">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">3.5</span>
|
|
<strong>Implement release, refund, and payout orchestration</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-high">high</span>
|
|
</div>
|
|
<p>Replace SHKeeper payout tasks and simulated release with auditable transaction instruction and confirmation flows.</p>
|
|
<p class="deps">Depends on: 3.3, 3.4</p>
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="medium">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">3.6</span>
|
|
<strong>Migrate frontend checkout and admin payment UI</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-medium">medium</span>
|
|
</div>
|
|
<p>Update buyer checkout, admin release, seller payout, and payment details for provider-neutral Request Network flows.</p>
|
|
<p class="deps">Depends on: 3.2, 3.3, 3.5</p>
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="medium">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">3.7</span>
|
|
<strong>Backfill legacy SHKeeper records and decommission provider-specific code</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-medium">medium</span>
|
|
</div>
|
|
<p>Migrate historical SHKeeper payment metadata and safely remove legacy wallet monitor/webhook/payout paths after cutoff.</p>
|
|
<p class="deps">Depends on: 3.3, 3.4, 3.5, 3.6</p>
|
|
</li></ul>
|
|
</article>
|
|
|
|
<article class="task" data-status="pending" data-priority="high">
|
|
<div class="task-head">
|
|
<div>
|
|
<p class="eyebrow">Task 4</p>
|
|
<h2>Define backend security and refactor strategy from latest audit</h2>
|
|
</div>
|
|
<div class="badges"><span class="badge pending">pending</span><span class="badge priority-high">high</span></div>
|
|
</div>
|
|
<p class="desc">Convert the backend stack security/refactor assessment into concrete architecture decisions, documentation deliverables, and developer handoff criteria.</p>
|
|
<details>
|
|
<summary>Details and test strategy</summary>
|
|
<p>Source audit: .taskmaster/docs/audit-backend-stack-security-and-refactor-assessment-2026-05-24.md. This task is advisory/architecture-focused and should run in parallel with immediate hardening. It should produce the decision artifacts needed before any backend-core rewrite or provider migration is started.</p>
|
|
<p><strong>Test strategy:</strong> Review and sign off each architecture document with backend, payments, frontend, and operations stakeholders. Confirm every open question has an owner or explicit deferred decision before implementation work begins.</p>
|
|
|
|
</details>
|
|
<h3>Subtasks (9)</h3>
|
|
<ul class="subtasks">
|
|
<li class="subtask" data-status="pending" data-priority="high">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">4.1</span>
|
|
<strong>Assign security ownership and launch decision criteria</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-high">high</span>
|
|
</div>
|
|
<p>Define who owns security decisions and what must be true before public launch or migration work proceeds.</p>
|
|
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="high">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">4.2</span>
|
|
<strong>Produce threat model for escrow platform</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-high">high</span>
|
|
</div>
|
|
<p>Document protected assets, actors, trust boundaries, and abuse cases for the financial marketplace.</p>
|
|
<p class="deps">Depends on: 4.1</p>
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="high">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">4.3</span>
|
|
<strong>Specify funds ledger and escrow state machine</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-high">high</span>
|
|
</div>
|
|
<p>Define canonical money movement and legal state transitions before refactor or provider migration.</p>
|
|
<p class="deps">Depends on: 4.2</p>
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="high">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">4.4</span>
|
|
<strong>Create authorization matrix for REST and Socket.IO</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-high">high</span>
|
|
</div>
|
|
<p>Map every endpoint and realtime event to access level, ownership checks, state preconditions, rate-limit tier, and audit-log requirement.</p>
|
|
<p class="deps">Depends on: 4.2</p>
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="high">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">4.5</span>
|
|
<strong>Decide session, passkey, and admin step-up architecture</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-high">high</span>
|
|
</div>
|
|
<p>Choose browser session model and high-risk admin authentication requirements.</p>
|
|
<p class="deps">Depends on: 4.2</p>
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="high">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">4.6</span>
|
|
<strong>Specify webhook security and provider adapter contracts</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-high">high</span>
|
|
</div>
|
|
<p>Define provider-neutral payment interface and signed webhook processing rules.</p>
|
|
<p class="deps">Depends on: 4.3</p>
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="medium">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">4.7</span>
|
|
<strong>Define secure build and supply-chain policy</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-medium">medium</span>
|
|
</div>
|
|
<p>Reduce npm/dependency compromise risk across frontend and any remaining Node services.</p>
|
|
<p class="deps">Depends on: 4.1</p>
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="medium">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">4.8</span>
|
|
<strong>Make backend-core stack decision</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-medium">medium</span>
|
|
</div>
|
|
<p>Choose whether the security-critical backend core remains TypeScript or moves to Go/Kotlin/Rust/Python.</p>
|
|
<p class="deps">Depends on: 4.2, 4.3, 4.4, 4.5, 4.6, 4.7</p>
|
|
</li>
|
|
<li class="subtask" data-status="pending" data-priority="medium">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">4.9</span>
|
|
<strong>Create migration and operational runbooks</strong>
|
|
<span class="badge pending">pending</span>
|
|
<span class="badge priority-medium">medium</span>
|
|
</div>
|
|
<p>Document rollout, rollback, and incident response for the selected backend/funds architecture.</p>
|
|
<p class="deps">Depends on: 4.8</p>
|
|
</li></ul>
|
|
</article>
|
|
|
|
<article class="task" data-status="done" data-priority="medium">
|
|
<div class="task-head">
|
|
<div>
|
|
<p class="eyebrow">Task 1</p>
|
|
<h2>Stabilize Mermaid diagram rendering across documentation vault</h2>
|
|
</div>
|
|
<div class="badges"><span class="badge done">done</span><span class="badge priority-medium">medium</span></div>
|
|
</div>
|
|
<p class="desc">Correct Mermaid syntax/rendering issues across the documentation vault and validate all Mermaid blocks.</p>
|
|
<details>
|
|
<summary>Details and test strategy</summary>
|
|
<p>Source PRD: .taskmaster/docs/prd-mermaid-diagram-rendering-stabilization.md. Scope covered 57 Mermaid blocks and 11 failing blocks. The source PRD records that all targeted files now pass mmdc parse validation and the full vault sweep passes.</p>
|
|
<p><strong>Test strategy:</strong> Run the same mmdc-based syntax validation across all Markdown Mermaid blocks and confirm zero parser failures in Obsidian/markdown previews.</p>
|
|
|
|
</details>
|
|
<h3>Subtasks (3)</h3>
|
|
<ul class="subtasks">
|
|
<li class="subtask" data-status="done" data-priority="medium">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">1.1</span>
|
|
<strong>Fix Security Architecture email/password sequence</strong>
|
|
<span class="badge done">done</span>
|
|
<span class="badge priority-medium">medium</span>
|
|
</div>
|
|
<p>Normalize parser-sensitive sequence text in 01 - Architecture/Security Architecture.md.</p>
|
|
|
|
</li>
|
|
<li class="subtask" data-status="done" data-priority="medium">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">1.2</span>
|
|
<strong>Fix authentication login and refresh diagrams</strong>
|
|
<span class="badge done">done</span>
|
|
<span class="badge priority-medium">medium</span>
|
|
</div>
|
|
<p>Normalize parser-sensitive token and refresh-token sequence text in Authentication Flow.</p>
|
|
|
|
</li>
|
|
<li class="subtask" data-status="done" data-priority="medium">
|
|
<div class="subtask-top">
|
|
<span class="sub-id">1.3</span>
|
|
<strong>Fix chat, delivery, dispute, OAuth, purchase request, referral, registration, and seller-offer diagrams</strong>
|
|
<span class="badge done">done</span>
|
|
<span class="badge priority-medium">medium</span>
|
|
</div>
|
|
<p>Clean the remaining Mermaid sequence diagrams with invalid or ambiguous syntax.</p>
|
|
|
|
</li></ul>
|
|
</article></section>
|
|
</main>
|
|
<footer>Generated from <code>.taskmaster/tasks/tasks.json</code>. Last docs update: 2026-05-24T00:00:00.000Z</footer>
|
|
<script>
|
|
const search = document.querySelector('#search');
|
|
const status = document.querySelector('#status');
|
|
const priority = document.querySelector('#priority');
|
|
const cards = [...document.querySelectorAll('.task')];
|
|
function applyFilters() {
|
|
const q = search.value.trim().toLowerCase();
|
|
const s = status.value;
|
|
const p = priority.value;
|
|
for (const card of cards) {
|
|
const text = card.innerText.toLowerCase();
|
|
const statusMatch = !s || card.dataset.status === s || [...card.querySelectorAll('.subtask')].some((el) => el.dataset.status === s);
|
|
const priorityMatch = !p || card.dataset.priority === p || [...card.querySelectorAll('.subtask')].some((el) => el.dataset.priority === p);
|
|
const searchMatch = !q || text.includes(q);
|
|
card.style.display = statusMatch && priorityMatch && searchMatch ? '' : 'none';
|
|
}
|
|
}
|
|
search.addEventListener('input', applyFilters);
|
|
status.addEventListener('change', applyFilters);
|
|
priority.addEventListener('change', applyFilters);
|
|
</script>
|
|
</body>
|
|
</html>
|