Tighten PCB findings: actions, stitch gating, real copper.

Fill action on every finding and show it in the report. Stitch/return only
on large HS/power nets. Parse stackup thickness, arcs, and vias from the
board. IC courtyard pad copper is not PE-PLC-004 RULE. Recommended RC/cap
stay REVIEW.
This commit is contained in:
2026-09-20 08:58:54 +02:00
parent 1e379f6042
commit f63c1c3411
9 changed files with 326 additions and 59 deletions
@@ -58,8 +58,9 @@ export function FindingCard({
const [open, setOpen] = useState(defaultOpen ?? false);
const commentCount = comments?.length ?? 0;
const hasCommentSupport = !!(projectId && collaborators && onCommentAdded && onCommentDeleted);
const actionText = (finding.action || finding.recommendation || "").trim();
const expandable =
!!finding.recommendation ||
!!actionText ||
!!finding.facts ||
!!finding.requirement ||
!!finding.inference ||
@@ -116,17 +117,17 @@ export function FindingCard({
)}
<span>{finding.finding}</span>
</p>
{finding.why && (
{finding.why && !finding.facts && !finding.requirement && (
<p className="text-sm text-muted-foreground leading-relaxed">{finding.why}</p>
)}
<div className="flex items-center gap-2 pt-1">
{finding.recommendation && (
{actionText && (
<span className="inline-flex items-center h-7 px-2 text-xs text-muted-foreground">
<ChevronDown
className={cn("h-3.5 w-3.5 mr-1 transition-transform", open && "rotate-180")}
/>
Recommendation
Action
</span>
)}
{hasCommentSupport && finding.finding_id && (
@@ -249,9 +250,10 @@ export function FindingCard({
) : null}
</dl>
)}
{finding.recommendation && (
{actionText && (
<p className="text-sm text-muted-foreground mt-2 pl-1 border-l-2 border-muted leading-relaxed">
{finding.recommendation}
<span className="font-medium text-foreground">Action. </span>
{actionText}
</p>
)}
{hasCommentSupport && finding.finding_id && (