Agent Deck 9차 고도화: finding status marker
직전 단계에서 session 단위 status를 붙였다. 이번에는 한 단계 더 내려가서 review finding 단위의 처리 상태를 dashboard에 붙였다.
저장소: hoonapps/agent-deck
이번 커밋: dc0fab6
이번 변경
각 review finding에 네 가지 상태를 둘 수 있게 했다.
openacceptedfixedignored
기본값은 open이다. review에서 나온 항목을 바로 고칠지, 받아들일지, 이미 처리했는지, 무시할지 dashboard에서 표시할 수 있다.
왜 finding 단위인가
session status만으로는 부족하다.
하나의 review session 안에는 여러 finding이 섞인다.
- 바로 고쳐야 하는 blocker
- 맞는 지적이지만 나중에 처리할 항목
- 이미 다른 커밋에서 해결된 항목
- 맥락상 받아들이지 않는 항목
세션 전체를 published로 바꿔도 finding 하나하나의 처리 상태는 남지 않는다. 그래서 이번에는 세션이 아니라 finding을 작업 단위로 보기 시작했다.
안정적인 key
화면에 보이는 #1, #2는 읽기에는 좋지만 저장 key로 쓰기에는 약하다. transcript에 finding이 하나 추가되면 번호가 밀릴 수 있다.
그래서 상태 저장에는 finding fingerprint를 쓴다.
1
2
3
4
agent
severity
location
summary
이 값을 묶어서 짧은 hash key로 만든다. 화면에서는 여전히 번호를 보여주지만, sidecar JSON에는 fingerprint key로 저장한다.
sidecar 구조 확장
상태는 기존 .agent-deck-session-state.json에 같이 저장한다.
1
2
3
4
5
6
7
8
9
10
11
12
{
"review.md": {
"status": "draft",
"updatedAt": "",
"findings": {
"d64c54e690f7": {
"status": "accepted",
"updatedAt": "2026-06-16T08:19:04.384Z"
}
}
}
}
transcript Markdown은 그대로 둔다. 원본 기록과 작업 상태를 분리하는 원칙은 session marker와 같다.
API와 filter
새 endpoint를 추가했다.
1
POST /api/finding-state
요청 body:
1
2
3
4
5
{
"file": "review.md",
"finding": "d64c54e690f7",
"status": "fixed"
}
dashboard filter에도 status를 추가했다.
1
2
GET /api/session?file=review.md&status=fixed
GET /export/findings?file=review.md&status=fixed
이제 high severity만 보거나, 특정 agent가 남긴 finding만 보거나, 아직 open인 항목만 따로 볼 수 있다.
검증
이번 변경은 dashboard 테스트를 46개까지 늘렸다.
1
2
3
4
5
npm test
npm run lint
node ./bin/agent-deck.js validate --config examples/demo.config.json
node ./bin/agent-deck.js validate --config examples/agent-deck.config.json
npm pack --dry-run
로컬 HTTP 호출로도 확인했다.
1
2
3
POST /api/finding-state
GET /api/session?file=review.md&status=accepted
GET /export/findings?file=review.md&status=fixed
확인한 것:
- finding key가 안정적인 hash 형태로 내려온다.
- 처음 상태는
open이다. accepted,fixed,ignored상태를 sidecar JSON에 저장한다.- status filter가 JSON API와 findings export에 적용된다.
- session status와 finding status가 같은 sidecar 안에서 공존한다.
- GitHub Actions CI가 통과한다.
in-app browser 연결은 이번에도 사용할 수 없었다. 화면 클릭 검증은 하지 못했고, HTML 렌더링, API, form 저장 경로를 테스트와 로컬 HTTP 호출로 확인했다.
다음
이제 Agent Deck dashboard는 단순히 transcript를 읽는 화면이 아니다.
1
2
session: draft / published / deferred
finding: open / accepted / fixed / ignored
다음으로는 open high finding만 모아보는 review inbox가 좋아 보인다. agent review가 많아질수록 중요한 것은 더 많은 출력을 받는 것이 아니라, 아직 처리되지 않은 중요한 항목을 놓치지 않는 것이다.
