AI Collaboration Report – Iteration 1 - snuhcs-course/swpp-2026-project-team-09 GitHub Wiki
Team 9, Bonnie and Claude: 김태현, 안진영, 윤유상, 함재현
Tools used: Claude Code (Fable 5.1, Opus 5.5), Claude Design (wireframes)
Claude Code wrote every file the team added (code, tests, CI, specs and tickets in .scratch/, docs) plus every PR description and review; each team commit carries a Co-Authored-By: Claude trailer. All work followed one process using Matt Pocock's skills (mattpocock/skills, in .claude/skills/):
-
/setup-matt-pocock-skills(#1):docs/agents/, pointing the skills to tickets, the glossary, and ADRs. -
/wayfinder: maps the work as decision tickets and grills the team on each. -
/to-spec: one spec per task (.scratch/iteration-1/P<NN>-<slug>/spec.md). -
/to-tickets: tickets with blocking edges. -
/implement: one PR per ticket, with/karpathy-guidelines(forrestchang/andrej-karpathy-skills).
Outside this flow, Claude Design made the wireframes and design system, ported in P06-01 (#50).
Not used:
-
Accounts and keys: app registration and keys at Kakao and Google; the agent documented the steps (
README.md, #68). - Map data, judged by eye: 26 building–outline links (#29), the shuttle route (#31), and 26 disputed outlines (#32).
- Stack and structure: frameworks and the servers' folder layout (P04 spec).
- [윤유상, 09-28, #3] "/implement .scratch/iteration-1/P04-repo-setup/issues/13-mobile-app-placeholder.md - /karpathy-guidelines 스킬을 따라 작업해줘. …"
- [김태현, 09-28, Wiki] "… (slack 파일 링크) 이게 미팅로그거든? 이거 기반으로 채워봐. …"
- [안진영, 10-05, #53] "로그인페이지는 다시 만들어야할거같아. … 도메인이@snu.ac.kr 인지 확인하고 아니면 저 로그인 실패했단 문구가 뜨도록 해야해. …"
- [함재현, 10-08, #74] "/ask-matt p27에 있는 모든 티켓 한 번의 프롬프트로 구현시키고 싶고, …"
(Full log: Iteration 1 – Prompt Log)
-
Detailed specs, small gap: after
/wayfinder's 100+ questions, 13 specs (.scratch/iteration-1/, 34,000 words), and 76 tickets, the code came back close to expectations. - Near one-shot integration: from wireframes and specs, one orchestration session returned the nine remaining tasks, frontend and backend connected, as eight PRs (#65–#72) in about six hours against 31 planned. QA found five defects (#66, #73).
-
Test volume: 269 test files in six projects (226 in
main-server/test/andmobile/__tests__/), plus three demo flows across four servers (flow-tests/test/). -
Research: five primary-source notes (
.scratch/research/) each changed a design; #24's shuttle finding reshaped P07/P15.
-
Wrong facts in research (#24,
external-sources.md): three false claims (e.g., no Co-op terms of use) and ~25 inaccurate lines, caught when a second session re-fetched every page. Cost: a full re-verification; the note merged 14 hours after the unreviewed #17 was rolled back. -
Hermes lacks
toSorted(#54,plain-map.tsx): Expo Go crashed, unseen by Jest on Node; the polyfill (#64) loaded after the mocks and crashed at start (#66). -
UI from a dead wireframe style (#50): the middle nav button came from an unused
plusStyle; touch targets overlapped while Jest passed. Caught by review and coordinate taps; cost: one review round. -
Acting without checking: installed skills were declared "not registered" without reading
~/.claude/skills/. Cost: re-prompting each time.
- Before (안진영, 10-04): "p06 1번 티켓 구현해줘. 이미 정해둔 디자인시스템이 (artifact link)" → After (10-05): "/implement P06 1번 티켓. 닫은 PR #34의 디자인 시스템 코드를 가져와서 시작해. 새 티켓에 맞게 안 쓰는 컴포넌트는 빼고 빠진 건 추가하고, 웹 스크린샷을 찍어서 디자인 시스템 미리보기와 비교해서 고쳐." The first run outgrew its scope and was closed unmerged (#33, #34); the second named the starting code, what to drop, and a check, and its PR shows the comparison screenshots (#50).
- Before (윤유상, 10-06): "… 각 커밋은 빌드와 테스트가 통과해야 한다. …" → After: "subagent를 통해서 앱을 실제로 에뮬레이터로 띄워서 QA 해보도록 해줘." With "tests pass" as the only bar the agent never launched the app; naming the means and the actor produced the QA behind #73.
No code was hand-edited; people stepped in and had the agent rewrite it:
- Table schemas (#37): every schema was reviewed by a human. Why: the agent added fields unasked; schemas are hard to change.
-
Session design (P04-07, #9): from two research notes, the team chose one app session per User and a
sessionstable read on every request. Why: signing the old phone out is a product rule, the team's to decide.
- Name the check in the prompt: "run it on the emulator", not "tests pass".
- Refine specs on real data first; skipping that cost P07-01 and P06 a day each.