Skip to content

Commit 2846b7f

Browse files
mpstatonclaude
andcommitted
new(context-v, issues): team-crawl accept drops crawled links and leaves the staged row
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UvYzx7vDWeafnkAi2nEQeb
1 parent e28db4d commit 2846b7f

1 file changed

Lines changed: 48 additions & 0 deletions

File tree

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---
2+
title: "Team-crawl accept drops the crawled links and leaves the staged row — double-save risk"
3+
lede: "Accepting a staged person creates them and affiliates them — but the LinkedIn/bio links the crawl found never land on the person, and the staged row stays in the results, so the operator can save the same person twice. Accept should carry everything the crawl learned and consume the row."
4+
date_created: 2026-07-24
5+
date_modified: 2026-07-24
6+
authors:
7+
- Michael Staton
8+
augmented_with:
9+
- Claude Code on Claude Fable 5
10+
semantic_version: 0.0.0.1
11+
tags:
12+
- Issue
13+
- Usability
14+
- Augment-It
15+
- Didi-Crawl
16+
- Persons
17+
- Org-Workbench
18+
status: Open
19+
---
20+
21+
# Team-crawl accept: links dropped, row lingers
22+
23+
## The two symptoms (operator-confirmed, 2026-07-24 evening)
24+
25+
1. **Crawled links don't save.** The team crawl usually finds a LinkedIn
26+
URL (and often a bio page) per person. Accept runs `person.apply` +
27+
`person.affiliate` — and `person.apply`'s create branch writes
28+
`linkedin_profile_url` only as a scalar matching field
29+
(`person-resolver.ts` CREATE), never as a `personal_links[]` entry. The
30+
new person's card shows zero links; the crawl's best evidence is
31+
silently discarded.
32+
2. **The accepted row stays staged.** After accept the row flips to
33+
"added ✓" but remains in the staged list. The person now exists in the
34+
People list AND in the staged results — redundant state that invites a
35+
second save (via re-accept paths or operator confusion). An accepted
36+
row should be CONSUMED: it leaves the staged list; the person appearing
37+
in the People list above is the confirmation.
38+
39+
## The fix (this doc precedes the implementation by minutes)
40+
41+
- On accept, after apply + affiliate: add the crawled `linkedin_url` and
42+
`bio_url` to the person via the existing `person.links.add`
43+
**on created persons only** (matched persons may already carry them;
44+
additive-not-duplicative, per [[Additive enrichment never overrides
45+
accepted|additive discipline]]). Link failures degrade soft — the person
46+
+ affiliation are the core writes.
47+
- On success, remove the row from the staged list entirely (skip
48+
semantics). The "N staged" count and Done-clear affordance follow.

0 commit comments

Comments
 (0)