{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-df21e74589785441", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/app/page.tsx:51", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/app/page.tsx:51"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b7e3367143d3f204", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/app/engagements/[id]/(detail)/layout.tsx:51", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/app/engagements/[id]/(detail)/layout.tsx:51"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b3a5986ebe1d9168", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/app/engagements/[id]/(detail)/page.tsx:57", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/app/engagements/[id]/(detail)/page.tsx:57"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9cf96842bebeca8c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/app/engagements/[id]/(detail)/repos/repo-connection-card.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/app/engagements/[id]/(detail)/repos/repo-connection-card.tsx:39"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-343e7380d5de40a8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/portal/(shell)/portal-nav.tsx:121", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/portal/(shell)/portal-nav.tsx:121"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0e5b7392f5f445da", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/chat/chat-thread.tsx:147", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/chat/chat-thread.tsx:147"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1dde0d7b3d1253dd", "name": "Privileged port 21 in use", "shortDescription": {"text": "Privileged port 21 in use"}, "fullDescription": {"text": "Port 21 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5ac5eb1057c8b69e", "name": "Privileged port 30 in use", "shortDescription": {"text": "Privileged port 30 in use"}, "fullDescription": {"text": "Port 30 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3aed3b86dbbe8002", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-generate-project-context/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-generate-project-context/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c2be8a235f8248fa", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-spec/assets/headless-schemas.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-spec/assets/headless-schemas.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4bd15547eae6fa05", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-editorial-review-structure/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-editorial-review-structure/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea4efc1a3e75b0ec", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-document-project/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-document-project/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f224462643e8ec45", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-document-project/templates/index-template.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-document-project/templates/index-template.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2298accf53b88be4", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-index-docs/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-index-docs/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-adbd6973e3d82aba", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-ux/references/headless.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-ux/references/headless.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c7eaa23e1f4bfd4a", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-ux/assets/design-example-shadcn.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-ux/assets/design-example-shadcn.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ba3c0610781168b7", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-ux/assets/experience-example-shadcn.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-ux/assets/experience-example-shadcn.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a97666b2a450c94f", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-ux/assets/headless-schemas.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-ux/assets/headless-schemas.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2313535cc6c04057", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-ux-designer/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-ux-designer/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-73c885bbade59ce7", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-review-edge-case-hunter/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-review-edge-case-hunter/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d4d1f408c919de5", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-quick-dev/step-04-review.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-quick-dev/step-04-review.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-728bc38bdf7f5b1a", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-quick-dev/spec-template.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-quick-dev/spec-template.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d013163c5c4b0d31", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-quick-dev/step-02-plan.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-quick-dev/step-02-plan.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a065d7c801648998", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-architecture/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-architecture/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3939608ca2ac2a5e", "name": "Agent instruction/config may expose a secret: .claude/skills/bmad-create-architecture/steps/step-06-structure.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/bmad-create-architecture/steps/step-06-structure.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7331a1d3e84d3566", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-architecture/steps/step-08-complete.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-architecture/steps/step-08-complete.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cd2f97bb0234e40d", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-architecture/steps/step-01b-continue.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-architecture/steps/step-01b-continue.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-00b2a2cb03293bb1", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-validate-prd/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-validate-prd/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a1405a8390e7abeb", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-product-brief/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-product-brief/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6db0532643a50737", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-help/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-help/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8f18123ace3a8f33", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-prd/references/validate.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-prd/references/validate.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a9bab6f0cd71e2f6", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-prd/references/headless.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-prd/references/headless.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e4e98a0a8935df7d", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-prd/assets/headless-schemas.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-prd/assets/headless-schemas.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d61c3166907bf360", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-market-research/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-market-research/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5cbdf8de20538a4c", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-market-research/steps/step-06-research-completion.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-market-research/steps/step-06-research-completion.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c6f1b97278033a05", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-market-research/steps/step-03-customer-pain-points.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-market-research/steps/step-03-customer-pain-points.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b263e43ad1401d87", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-market-research/steps/step-02-customer-behavior.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-market-research/steps/step-02-customer-behavior.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-af665492367d8555", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-market-research/steps/step-04-customer-decisions.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-market-research/steps/step-04-customer-decisions.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b178e43759e92edf", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-code-review/steps/step-03-triage.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-code-review/steps/step-03-triage.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0d3f100420ad1afd", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-code-review/steps/step-04-present.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-code-review/steps/step-04-present.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0a6a87e5198f78d3", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-code-review/steps/step-02-review.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-code-review/steps/step-02-review.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-48f7869085add385", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-prd/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-prd/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-51ec331702c74f26", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-prfaq/agents/web-researcher.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-prfaq/agents/web-researcher.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d93bd67bce4325c2", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-prfaq/references/verdict.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-prfaq/references/verdict.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8848117ef6426513", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-story/discover-inputs.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-story/discover-inputs.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-635f1bb8a9c48611", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-story/template.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-story/template.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f81088321f3abb51", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-dev-story/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-dev-story/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a48a70118aa203f4", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-tech-writer/write-document.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-tech-writer/write-document.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-17e9a2a3c36fe612", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-tech-writer/explain-concept.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-tech-writer/explain-concept.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3397e52af8ad8541", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-tech-writer/mermaid-gen.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-tech-writer/mermaid-gen.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-42b352466a1627eb", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-tech-writer/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-tech-writer/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-38d0a323b3c381a1", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-advanced-elicitation/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-advanced-elicitation/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1207373365d2318a", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-technical-research/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-technical-research/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eedd16cae1f1b38d", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-technical-research/technical-steps/step-02-technical-over", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-technical-research/technical-steps/step-02-technical-overview.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c3fc1ecedb8e7783", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-technical-research/technical-steps/step-03-integration-pa", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-technical-research/technical-steps/step-03-integration-patterns.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-351c9360929440ac", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-technical-research/technical-steps/step-06-research-synth", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-technical-research/technical-steps/step-06-research-synthesis.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1f6935d80d78ca29", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-investigate/references/case-file-template.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-investigate/references/case-file-template.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a0e756e379683bfe", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-architect/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-architect/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1de62371757fa781", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-edit-prd/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-edit-prd/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-688bb4da38caa472", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-pm/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-pm/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-316c4bc00fd5cb80", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-analyst/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-analyst/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8f19d36c1e05d372", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-domain-research/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-domain-research/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5b51e2eafa8e24e5", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-domain-research/domain-steps/step-02-domain-analysis.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-domain-research/domain-steps/step-02-domain-analysis.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-271e4af592f67a8b", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-domain-research/domain-steps/step-06-research-synthesis.m", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-domain-research/domain-steps/step-06-research-synthesis.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fcda1a188e35dc7f", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-domain-research/domain-steps/step-03-competitive-landscap", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-domain-research/domain-steps/step-03-competitive-landscape.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bd47d68520b541cc", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-checkpoint-preview/step-04-testing.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-checkpoint-preview/step-04-testing.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-28167ac3d897afa9", "name": "Agent authority lacks a verifier contract: .claude/skills/bmad-checkpoint-preview/step-05-wrapup.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-checkpoint-preview/step-05-wrapup.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a2eb184d61eca92f", "name": "Commented-code block (5 lines) in vitest.config.ts:16", "shortDescription": {"text": "Commented-code block (5 lines) in vitest.config.ts:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-af30ff94b34e45dd", "name": "Commented-code block (6 lines) in next.config.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in next.config.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2533cba5ffe9c4a0", "name": "Commented-code block (5 lines) in src/env.ts:23", "shortDescription": {"text": "Commented-code block (5 lines) in src/env.ts:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1d58299190007bb", "name": "Commented-code block (5 lines) in src/app/api/inngest/route.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/inngest/route.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-34f3a635c78db3e4", "name": "Commented-code block (5 lines) in src/app/invite/[token]/page.tsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/invite/[token]/page.tsx:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-514c58d1366131fb", "name": "Commented-code block (5 lines) in src/app/portal/layout.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/portal/layout.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1d31bc231841c56f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/portal/(shell)/notification-toaster.tsx:27", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/portal/(shell)/notification-toaster.tsx:27"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-880365fcd8bc1f3a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/portal/(shell)/messages-nav-link.tsx:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/portal/(shell)/messages-nav-link.tsx:28"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d94a24f6615c60bb", "name": "Commented-code block (5 lines) in src/app/portal/(shell)/notifications.ts:54", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/portal/(shell)/notifications.ts:54"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67fb0fdd06ce8db9", "name": "Commented-code block (5 lines) in src/app/portal/(shell)/layout.tsx:13", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/portal/(shell)/layout.tsx:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b69685b6b060ed2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/portal/(shell)/ship-feed.tsx:45", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/portal/(shell)/ship-feed.tsx:45"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-06c2b06bd235b523", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/portal/(shell)/notification-center.tsx:29", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/portal/(shell)/notification-center.tsx:29"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-68be8a1698199cb0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/portal/(shell)/notification-bell.tsx:26", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/portal/(shell)/notification-bell.tsx:26"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7f72eaf1303ed7ef", "name": "Commented-code block (5 lines) in src/server/inngest/functions/invoice-sent.ts:50", "shortDescription": {"text": "Commented-code block (5 lines) in src/server/inngest/functions/invoice-sent.ts:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eda2d972615d620e", "name": "Commented-code block (5 lines) in src/components/chat/chat-thread.tsx:84", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/chat/chat-thread.tsx:84"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e00ae048edb597e2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/chat/chat-thread.tsx:64", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/chat/chat-thread.tsx:64"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0c002d70b37a2f90", "name": "Commented-code block (12 lines) in src/components/realtime/realtime-provider.tsx:25", "shortDescription": {"text": "Commented-code block (12 lines) in src/components/realtime/realtime-provider.tsx:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8e047ab7af03962f", "name": "7 env vars used in code but missing from .env.example", "shortDescription": {"text": "7 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `NEXT_PUBLIC_SENTRY_DSN`, `NEXT_RUNTIME`, `NODE_ENV`, `SENTRY_AUTH_TOKEN`, `SENTRY_DSN`, `SENTRY_ORG`, `SENTRY_PROJECT`. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\n_bmad/scripts/resolve_config.py:extract_key, _bmad/scripts/resolve_customization.py:extract_key\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/24992"}, "properties": {"repository": "cjjutba/soloist", "repoUrl": "https://github.com/cjjutba/soloist", "branch": "main"}, "results": [{"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-df21e74589785441", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/app/page.tsx:51"}, "properties": {"repobilityId": "30a40c5d5cd19a20", "scanner": "scanner-primary", "fingerprint": "df21e74589785441", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b7e3367143d3f204", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/app/engagements/[id]/(detail)/layout.tsx:51"}, "properties": {"repobilityId": "89ec5711d3316246", "scanner": "scanner-primary", "fingerprint": "b7e3367143d3f204", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b3a5986ebe1d9168", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/app/engagements/[id]/(detail)/page.tsx:57"}, "properties": {"repobilityId": "4bd7ec647bcda7d8", "scanner": "scanner-primary", "fingerprint": "b3a5986ebe1d9168", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9cf96842bebeca8c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/app/engagements/[id]/(detail)/repos/repo-connection-card.tsx:39"}, "properties": {"repobilityId": "8800238cd2a9b427", "scanner": "scanner-primary", "fingerprint": "9cf96842bebeca8c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-343e7380d5de40a8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/portal/(shell)/portal-nav.tsx:121"}, "properties": {"repobilityId": "64d06844776a9929", "scanner": "scanner-primary", "fingerprint": "343e7380d5de40a8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0e5b7392f5f445da", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/chat/chat-thread.tsx:147"}, "properties": {"repobilityId": "7443160204ae49a7", "scanner": "scanner-primary", "fingerprint": "0e5b7392f5f445da", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1dde0d7b3d1253dd", "level": "warning", "message": {"text": "Privileged port 21 in use"}, "properties": {"repobilityId": "d920b7cd1b1a16dc", "scanner": "scanner-primary", "fingerprint": "1dde0d7b3d1253dd", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-sprint-planning/sprint-status-template.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5ac5eb1057c8b69e", "level": "warning", "message": {"text": "Privileged port 30 in use"}, "properties": {"repobilityId": "54f172e7d16fc662", "scanner": "scanner-primary", "fingerprint": "5ac5eb1057c8b69e", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-sprint-planning/sprint-status-template.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "20aa48e4ba7139c0", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "e85466b3f787b18c", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "58f222ef7e43d623", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3aed3b86dbbe8002", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-generate-project-context/SKILL.md"}, "properties": {"repobilityId": "06908f22ca2fed21", "scanner": "scanner-primary", "fingerprint": "3aed3b86dbbe8002", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-generate-project-context/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c2be8a235f8248fa", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-spec/assets/headless-schemas.md"}, "properties": {"repobilityId": "0268e467e462ad3f", "scanner": "scanner-primary", "fingerprint": "c2be8a235f8248fa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-spec/assets/headless-schemas.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4bd15547eae6fa05", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-editorial-review-structure/SKILL.md"}, "properties": {"repobilityId": "4382185a44dff8c4", "scanner": "scanner-primary", "fingerprint": "4bd15547eae6fa05", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-editorial-review-structure/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ea4efc1a3e75b0ec", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-document-project/SKILL.md"}, "properties": {"repobilityId": "4922ae98c4d67c64", "scanner": "scanner-primary", "fingerprint": "ea4efc1a3e75b0ec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-document-project/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f224462643e8ec45", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-document-project/templates/index-template.md"}, "properties": {"repobilityId": "d8b060a2031bce95", "scanner": "scanner-primary", "fingerprint": "f224462643e8ec45", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-document-project/templates/index-template.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2298accf53b88be4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-index-docs/SKILL.md"}, "properties": {"repobilityId": "15e85a58abcef74d", "scanner": "scanner-primary", "fingerprint": "2298accf53b88be4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-index-docs/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-adbd6973e3d82aba", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-ux/references/headless.md"}, "properties": {"repobilityId": "144bdea8be727c42", "scanner": "scanner-primary", "fingerprint": "adbd6973e3d82aba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-ux/references/headless.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c7eaa23e1f4bfd4a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-ux/assets/design-example-shadcn.md"}, "properties": {"repobilityId": "28856fa0aa26784e", "scanner": "scanner-primary", "fingerprint": "c7eaa23e1f4bfd4a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-ux/assets/design-example-shadcn.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ba3c0610781168b7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-ux/assets/experience-example-shadcn.md"}, "properties": {"repobilityId": "11c130cfcad5e98f", "scanner": "scanner-primary", "fingerprint": "ba3c0610781168b7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-ux/assets/experience-example-shadcn.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a97666b2a450c94f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-ux/assets/headless-schemas.md"}, "properties": {"repobilityId": "27a1cb4a0e2aac31", "scanner": "scanner-primary", "fingerprint": "a97666b2a450c94f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-ux/assets/headless-schemas.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2313535cc6c04057", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-ux-designer/SKILL.md"}, "properties": {"repobilityId": "d1a99616d83c87c9", "scanner": "scanner-primary", "fingerprint": "2313535cc6c04057", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-agent-ux-designer/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-73c885bbade59ce7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-review-edge-case-hunter/SKILL.md"}, "properties": {"repobilityId": "96cac9f6f848ebe9", "scanner": "scanner-primary", "fingerprint": "73c885bbade59ce7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-review-edge-case-hunter/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9d4d1f408c919de5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-quick-dev/step-04-review.md"}, "properties": {"repobilityId": "6bdcea4c91852591", "scanner": "scanner-primary", "fingerprint": "9d4d1f408c919de5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-quick-dev/step-04-review.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-728bc38bdf7f5b1a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-quick-dev/spec-template.md"}, "properties": {"repobilityId": "5d9b2e641d2053c0", "scanner": "scanner-primary", "fingerprint": "728bc38bdf7f5b1a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-quick-dev/spec-template.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d013163c5c4b0d31", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-quick-dev/step-02-plan.md"}, "properties": {"repobilityId": "23571bf7be572554", "scanner": "scanner-primary", "fingerprint": "d013163c5c4b0d31", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-quick-dev/step-02-plan.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a065d7c801648998", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-architecture/SKILL.md"}, "properties": {"repobilityId": "c32604861260c63d", "scanner": "scanner-primary", "fingerprint": "a065d7c801648998", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-create-architecture/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3939608ca2ac2a5e", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/bmad-create-architecture/steps/step-06-structure.md"}, "properties": {"repobilityId": "5e2a5db973c319d9", "scanner": "scanner-primary", "fingerprint": "3939608ca2ac2a5e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-create-architecture/steps/step-06-structure.md"}, "region": {"startLine": 222}}}]}, {"ruleId": "scanner-7331a1d3e84d3566", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-architecture/steps/step-08-complete.md"}, "properties": {"repobilityId": "a1ecb193acd1437f", "scanner": "scanner-primary", "fingerprint": "7331a1d3e84d3566", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-create-architecture/steps/step-08-complete.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cd2f97bb0234e40d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-architecture/steps/step-01b-continue.md"}, "properties": {"repobilityId": "0c4e3b2f26f71157", "scanner": "scanner-primary", "fingerprint": "cd2f97bb0234e40d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-create-architecture/steps/step-01b-continue.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-00b2a2cb03293bb1", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-validate-prd/SKILL.md"}, "properties": {"repobilityId": "ad3046bddfebcbea", "scanner": "scanner-primary", "fingerprint": "00b2a2cb03293bb1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-validate-prd/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a1405a8390e7abeb", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-product-brief/SKILL.md"}, "properties": {"repobilityId": "60aee2e3bdd9bb8a", "scanner": "scanner-primary", "fingerprint": "a1405a8390e7abeb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-product-brief/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6db0532643a50737", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-help/SKILL.md"}, "properties": {"repobilityId": "d2fa6ca6415ab04d", "scanner": "scanner-primary", "fingerprint": "6db0532643a50737", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-help/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8f18123ace3a8f33", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-prd/references/validate.md"}, "properties": {"repobilityId": "4bcd398366a8463b", "scanner": "scanner-primary", "fingerprint": "8f18123ace3a8f33", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-prd/references/validate.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a9bab6f0cd71e2f6", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-prd/references/headless.md"}, "properties": {"repobilityId": "9cd5082341485acc", "scanner": "scanner-primary", "fingerprint": "a9bab6f0cd71e2f6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-prd/references/headless.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e4e98a0a8935df7d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-prd/assets/headless-schemas.md"}, "properties": {"repobilityId": "99ff258b0b3cdbab", "scanner": "scanner-primary", "fingerprint": "e4e98a0a8935df7d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-prd/assets/headless-schemas.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d61c3166907bf360", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-market-research/SKILL.md"}, "properties": {"repobilityId": "e914996cabe4bc8e", "scanner": "scanner-primary", "fingerprint": "d61c3166907bf360", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-market-research/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5cbdf8de20538a4c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-market-research/steps/step-06-research-completion.md"}, "properties": {"repobilityId": "81589e002f713de5", "scanner": "scanner-primary", "fingerprint": "5cbdf8de20538a4c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-market-research/steps/step-06-research-completion.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c6f1b97278033a05", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-market-research/steps/step-03-customer-pain-points.md"}, "properties": {"repobilityId": "86add6f32b837bd8", "scanner": "scanner-primary", "fingerprint": "c6f1b97278033a05", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-market-research/steps/step-03-customer-pain-points.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b263e43ad1401d87", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-market-research/steps/step-02-customer-behavior.md"}, "properties": {"repobilityId": "fc9d958039085d11", "scanner": "scanner-primary", "fingerprint": "b263e43ad1401d87", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-market-research/steps/step-02-customer-behavior.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-af665492367d8555", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-market-research/steps/step-04-customer-decisions.md"}, "properties": {"repobilityId": "054a1d85ac945229", "scanner": "scanner-primary", "fingerprint": "af665492367d8555", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-market-research/steps/step-04-customer-decisions.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b178e43759e92edf", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-code-review/steps/step-03-triage.md"}, "properties": {"repobilityId": "26c50ba52cfab98c", "scanner": "scanner-primary", "fingerprint": "b178e43759e92edf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-code-review/steps/step-03-triage.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0d3f100420ad1afd", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-code-review/steps/step-04-present.md"}, "properties": {"repobilityId": "cb9e78ec569c0c51", "scanner": "scanner-primary", "fingerprint": "0d3f100420ad1afd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-code-review/steps/step-04-present.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a6a87e5198f78d3", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-code-review/steps/step-02-review.md"}, "properties": {"repobilityId": "7a3553d312317d7c", "scanner": "scanner-primary", "fingerprint": "0a6a87e5198f78d3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-code-review/steps/step-02-review.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-48f7869085add385", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-prd/SKILL.md"}, "properties": {"repobilityId": "cb309251bad63beb", "scanner": "scanner-primary", "fingerprint": "48f7869085add385", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-create-prd/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-51ec331702c74f26", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-prfaq/agents/web-researcher.md"}, "properties": {"repobilityId": "f783a53117db6cf7", "scanner": "scanner-primary", "fingerprint": "51ec331702c74f26", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-prfaq/agents/web-researcher.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d93bd67bce4325c2", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-prfaq/references/verdict.md"}, "properties": {"repobilityId": "15f0b261a6575c11", "scanner": "scanner-primary", "fingerprint": "d93bd67bce4325c2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-prfaq/references/verdict.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8848117ef6426513", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-story/discover-inputs.md"}, "properties": {"repobilityId": "8b5469b0ef306784", "scanner": "scanner-primary", "fingerprint": "8848117ef6426513", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-create-story/discover-inputs.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-635f1bb8a9c48611", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-create-story/template.md"}, "properties": {"repobilityId": "25cabc28a819c504", "scanner": "scanner-primary", "fingerprint": "635f1bb8a9c48611", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-create-story/template.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f81088321f3abb51", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-dev-story/SKILL.md"}, "properties": {"repobilityId": "6575346c54eb1a71", "scanner": "scanner-primary", "fingerprint": "f81088321f3abb51", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-dev-story/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a48a70118aa203f4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-tech-writer/write-document.md"}, "properties": {"repobilityId": "f1b20f98ce0f290a", "scanner": "scanner-primary", "fingerprint": "a48a70118aa203f4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-agent-tech-writer/write-document.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-17e9a2a3c36fe612", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-tech-writer/explain-concept.md"}, "properties": {"repobilityId": "855a1dc400fcab26", "scanner": "scanner-primary", "fingerprint": "17e9a2a3c36fe612", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-agent-tech-writer/explain-concept.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3397e52af8ad8541", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-tech-writer/mermaid-gen.md"}, "properties": {"repobilityId": "fb4b4ed3338176ec", "scanner": "scanner-primary", "fingerprint": "3397e52af8ad8541", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-agent-tech-writer/mermaid-gen.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-42b352466a1627eb", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-tech-writer/SKILL.md"}, "properties": {"repobilityId": "d291510ab2ec5411", "scanner": "scanner-primary", "fingerprint": "42b352466a1627eb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-agent-tech-writer/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-38d0a323b3c381a1", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-advanced-elicitation/SKILL.md"}, "properties": {"repobilityId": "c4cf8f1863fa87d4", "scanner": "scanner-primary", "fingerprint": "38d0a323b3c381a1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-advanced-elicitation/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1207373365d2318a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-technical-research/SKILL.md"}, "properties": {"repobilityId": "6953316874c33b9c", "scanner": "scanner-primary", "fingerprint": "1207373365d2318a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-technical-research/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eedd16cae1f1b38d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-technical-research/technical-steps/step-02-technical-overview.md"}, "properties": {"repobilityId": "3defa6ad389b7bbd", "scanner": "scanner-primary", "fingerprint": "eedd16cae1f1b38d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-technical-research/technical-steps/step-02-technical-overview.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c3fc1ecedb8e7783", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-technical-research/technical-steps/step-03-integration-patterns.md"}, "properties": {"repobilityId": "3c2cd43ad5a528a7", "scanner": "scanner-primary", "fingerprint": "c3fc1ecedb8e7783", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-technical-research/technical-steps/step-03-integration-patterns.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-351c9360929440ac", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-technical-research/technical-steps/step-06-research-synthesis.md"}, "properties": {"repobilityId": "2c572b2117066ee8", "scanner": "scanner-primary", "fingerprint": "351c9360929440ac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-technical-research/technical-steps/step-06-research-synthesis.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1f6935d80d78ca29", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-investigate/references/case-file-template.md"}, "properties": {"repobilityId": "0f2e7e8d60c6f662", "scanner": "scanner-primary", "fingerprint": "1f6935d80d78ca29", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-investigate/references/case-file-template.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a0e756e379683bfe", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-architect/SKILL.md"}, "properties": {"repobilityId": "114dafee3d83b72b", "scanner": "scanner-primary", "fingerprint": "a0e756e379683bfe", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-agent-architect/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1de62371757fa781", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-edit-prd/SKILL.md"}, "properties": {"repobilityId": "dc5566edd813e405", "scanner": "scanner-primary", "fingerprint": "1de62371757fa781", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-edit-prd/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-688bb4da38caa472", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-pm/SKILL.md"}, "properties": {"repobilityId": "5d49e5a5e0471d1b", "scanner": "scanner-primary", "fingerprint": "688bb4da38caa472", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-agent-pm/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-316c4bc00fd5cb80", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-agent-analyst/SKILL.md"}, "properties": {"repobilityId": "9833d83d1d11c1cf", "scanner": "scanner-primary", "fingerprint": "316c4bc00fd5cb80", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-agent-analyst/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8f19d36c1e05d372", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-domain-research/SKILL.md"}, "properties": {"repobilityId": "1b1246c000f17fa1", "scanner": "scanner-primary", "fingerprint": "8f19d36c1e05d372", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-domain-research/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5b51e2eafa8e24e5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-domain-research/domain-steps/step-02-domain-analysis.md"}, "properties": {"repobilityId": "00d04c3c5d30b66c", "scanner": "scanner-primary", "fingerprint": "5b51e2eafa8e24e5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-domain-research/domain-steps/step-02-domain-analysis.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-271e4af592f67a8b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-domain-research/domain-steps/step-06-research-synthesis.md"}, "properties": {"repobilityId": "39a8d4bcebc8808f", "scanner": "scanner-primary", "fingerprint": "271e4af592f67a8b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-domain-research/domain-steps/step-06-research-synthesis.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fcda1a188e35dc7f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-domain-research/domain-steps/step-03-competitive-landscape.md"}, "properties": {"repobilityId": "ff8333a728156971", "scanner": "scanner-primary", "fingerprint": "fcda1a188e35dc7f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-domain-research/domain-steps/step-03-competitive-landscape.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bd47d68520b541cc", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-checkpoint-preview/step-04-testing.md"}, "properties": {"repobilityId": "3d9d1a62b620d92e", "scanner": "scanner-primary", "fingerprint": "bd47d68520b541cc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-checkpoint-preview/step-04-testing.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-28167ac3d897afa9", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/bmad-checkpoint-preview/step-05-wrapup.md"}, "properties": {"repobilityId": "14bcfe76db4b8d94", "scanner": "scanner-primary", "fingerprint": "28167ac3d897afa9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/bmad-checkpoint-preview/step-05-wrapup.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a2eb184d61eca92f", "level": "none", "message": {"text": "Commented-code block (5 lines) in vitest.config.ts:16"}, "properties": {"repobilityId": "335ecec467016552", "scanner": "scanner-primary", "fingerprint": "a2eb184d61eca92f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af30ff94b34e45dd", "level": "none", "message": {"text": "Commented-code block (6 lines) in next.config.ts:6"}, "properties": {"repobilityId": "0d756745cc74e0ba", "scanner": "scanner-primary", "fingerprint": "af30ff94b34e45dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2533cba5ffe9c4a0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/env.ts:23"}, "properties": {"repobilityId": "330b22038203c4f4", "scanner": "scanner-primary", "fingerprint": "2533cba5ffe9c4a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1d58299190007bb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/inngest/route.ts:11"}, "properties": {"repobilityId": "294c7ac4a615fb64", "scanner": "scanner-primary", "fingerprint": "b1d58299190007bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34f3a635c78db3e4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/invite/[token]/page.tsx:11"}, "properties": {"repobilityId": "f04335084a20b191", "scanner": "scanner-primary", "fingerprint": "34f3a635c78db3e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-514c58d1366131fb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/portal/layout.tsx:7"}, "properties": {"repobilityId": "d7538b372aa58803", "scanner": "scanner-primary", "fingerprint": "514c58d1366131fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d31bc231841c56f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/portal/(shell)/notification-toaster.tsx:27"}, "properties": {"repobilityId": "0f65f59a0ee15265", "scanner": "scanner-primary", "fingerprint": "1d31bc231841c56f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-880365fcd8bc1f3a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/portal/(shell)/messages-nav-link.tsx:28"}, "properties": {"repobilityId": "37e8204bbb42afa0", "scanner": "scanner-primary", "fingerprint": "880365fcd8bc1f3a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d94a24f6615c60bb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/portal/(shell)/notifications.ts:54"}, "properties": {"repobilityId": "4a3133de05318e2e", "scanner": "scanner-primary", "fingerprint": "d94a24f6615c60bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67fb0fdd06ce8db9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/portal/(shell)/layout.tsx:13"}, "properties": {"repobilityId": "ec68cd7f702a53fe", "scanner": "scanner-primary", "fingerprint": "67fb0fdd06ce8db9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b69685b6b060ed2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/portal/(shell)/ship-feed.tsx:45"}, "properties": {"repobilityId": "8bf4486a02b53205", "scanner": "scanner-primary", "fingerprint": "4b69685b6b060ed2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-06c2b06bd235b523", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/portal/(shell)/notification-center.tsx:29"}, "properties": {"repobilityId": "178be7b812d38cfc", "scanner": "scanner-primary", "fingerprint": "06c2b06bd235b523", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-68be8a1698199cb0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/portal/(shell)/notification-bell.tsx:26"}, "properties": {"repobilityId": "d652446bed9ce7c6", "scanner": "scanner-primary", "fingerprint": "68be8a1698199cb0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7f72eaf1303ed7ef", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/server/inngest/functions/invoice-sent.ts:50"}, "properties": {"repobilityId": "73beb998c8434375", "scanner": "scanner-primary", "fingerprint": "7f72eaf1303ed7ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eda2d972615d620e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/chat/chat-thread.tsx:84"}, "properties": {"repobilityId": "0c48b5fd2ddffae5", "scanner": "scanner-primary", "fingerprint": "eda2d972615d620e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e00ae048edb597e2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/chat/chat-thread.tsx:64"}, "properties": {"repobilityId": "f9bd2d262a3a26f5", "scanner": "scanner-primary", "fingerprint": "e00ae048edb597e2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0c002d70b37a2f90", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/components/realtime/realtime-provider.tsx:25"}, "properties": {"repobilityId": "e0df0236d5e00b5e", "scanner": "scanner-primary", "fingerprint": "0c002d70b37a2f90", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e047ab7af03962f", "level": "note", "message": {"text": "7 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "5a0455f6498c27ad", "scanner": "scanner-primary", "fingerprint": "8e047ab7af03962f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "76367c80bb3e06b0", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}