AI Collaboration Report — Iteration 1 — Prompt Log - snuhcs-course/swpp-2026-project-team-18 GitHub Wiki
AI Collaboration Report — Iteration 1 — Prompt Log
Prompts for AI Collaboration Report — Iteration 1, quoted verbatim as Kim Jinho sent them to Kiro (sections 1–4) and as 김수연 sent them to Claude (sections 5–10), with an English gloss. The main page shows versions the PM edited to spell out what the team decided and what it handed to AI; where the wording differs, this page is the record. Outputs are summarized with their commits.
1. [09-23 14:31] Segment bars, from two screenshots
Attached: a Kakao Map route list and our route-choice screen.
첫번째 화면은 실제 카카오맵에서의 화면이고, 두번째는 우리 앱의 화면이야. 보면, 시간이 정확하지 않을뿐더러, 카카오맵에서는 가로로 상세하게 도보, 버스, 도보 등으로 구분해놓는 반면 우리는 그런게 없어. 우리 앱에서도 이게 구현이 됐으면 좋겠어. 버스는 마을버스, 시내버스 등에 따라 가로 선에 표현되는 버스의 색이 알맞게 변경돼야할 것이며, 도보는 카카오지도처럽 회색으로 하자. 지하철은 지하철 노선 색에 맞게 해주고. 경로 선택 화면에서 "이동 시간만 실측값"이란 안내 상자는 삭제래. 피그마에서 UI먼저 수정한 뒤, 구현까지 해줘.
(The first screen is Kakao Map, the second is ours. Our times are off, and Kakao splits each route into walk, bus and walk segments; we want that too. Color bus segments by bus type, walking gray like Kakao, subway by line color. Remove the "measured travel time only" box. Update Figma first, then implement.)
- Decided by the team: the segment bars, their color rules, removing the box, Figma first
- Handed to AI: the Figma frames, the code and its tests
- Output: segment bars on the route cards and the box removed (
804bb43), with four new test files:RouteSegmentsTest,SegmentPaletteTest,NetworkDtoNullSafetyTest,test_segments.py - Next decision: at 15:48 the PM reviewed the result and set city-correct line colors (Busan vs Seoul line 1) and a navy border for the chosen route (section 11, "Arrival times", before)
2. [09-24 20:00] Arrival rule
하던 것부터 계속 하고, 아래 내용도 이어서 해. 지금 우리 도착 판별 로직을 목적지 geofence 진입 + 2분 이상 체류 = 목적지 영역 도착 추정 이란 로직을 적용해줘. 지금의 로직도 가능한 부분에선 살려서, 도착 판별이 확실하게 되도록 해줘.
(Change the arrival rule to: entering the destination geofence + staying 2 minutes or more = arrival. Keep what works in the current logic and make arrival detection reliable.) The same message went on to ask for a home-address step at sign-up, a "집" (home) button and an admin view of the database.
- Decided by the team: the rule, including the 2-minute dwell
- Handed to AI: the implementation and its tests
- Output: the dwell condition in
TripGeofencewithTripGeofenceTestextended (ebd9569). AI also added an exception without asking: if tracking ends while the user is inside the radius, the arrival is kept with its shorter dwell recorded (finalizeArrival). The code comment ties it to arrivals the old rule would have recorded
3. [09-28 13:13] Another agent's review of 0.9.0
The message began with the other agent's review, pasted in full: five "high" findings, five more, and five parts confirmed working (not reproduced here).
다른 에이전트한테 우리 앱의 모순/개선점들을 분석해달랬더니 나온 내용이야. 한 번 쭉 검토해서, 먼저 고쳐야할 것들을 순서대로 나열해봐
(This is what another agent found when asked for contradictions and improvements in our app. Review it and list what to fix first, in order.)
- Handed to AI: checking each finding against the code
- Output (summarized): each finding checked against
6f464b8and put in order: ① "the fastest route" isn't the fastest across modes, flagged as needing a decision; ② the arrival state isn't kept; ③ "in transit" is lost when the service restarts; ④ the map pan jumps 2×; ⑤ a small pinch snaps a whole zoom level. The static-map counter (an infrastructure decision), a 96 MB bitmap risk, accessibility and two rare races were deferred with reasons. It closed by asking whether to start on ②–⑤ or decide ① first - Decided by the team: the fixes were held while a handover document was written first (16:39).
On 10-08 the team judged ① intended (
d20b620); Park Junha fixed ② (4362c51); ③–⑤ are open
4. [09-30 17:39] Slope on ⑬-d
Attached: the Figma frame "13-d. 경로 선택 · 자전거".
"경사도"가 현재 우리 API에서 제공되는 정보야?
(Is "slope" something our API currently provides?)
- Handed to AI: checking our code and Kakao's response
- Output (excerpt, translated): "No. Our server takes only
totalTimeandtotalDistancefrom Kakao's response. Four live calls (Sillim Station → SNU) returned total and per-section distance and time, guidance and [x, y] points, with no elevation. The slope (1.2 / 0.8 / 0.6%) and bike-lane (72 / 84 / 62%) figures on 13-d are mockups." It then listed three options: drop the two cells, call all three route modes, or add external elevation data (DEM) and compute slope, a large job that gives estimates. It asked which to take - Decided by the team: slope dropped from the design; the bike-lane cell stays empty (Design 2.2.8)
5. [09-30 20:17] task.md, from Figma
The message began with the change list per Figma screen (1 login, 2 sign-up, 3 home alarms, 4 alarm decision, 5 risk choice, 12 add event, 12-a, 13-a~13-d route choice, 14 home address, 15 prep time), about 30 lines, not reproduced here. It closed with:
프론트엔드 개발자로서 위 내용들로 코드를 수정할 거야. Figma(…)와 비교하면서 기본적으로 Figma를 구현하는 것에 집중해. 내가 언급하지 못했더라고 Figma 내용과 코드 구현 간의 괴리가 있다면 Figma 내용대로 수정이 필요할 거야. 위 명세에서 적은 번호는 figma에서 구성한 화면 번호와 일치해. 각 화면별로 구현되어야 하는 내용 구체적으로 하나하나 작성해서 총체적인 task.md 작성해줘. 나는 프론트엔드 개발자이므로 백엔드에서 수정되어야 하는 내용인데 내가 적어놨다면 따로 빼놓고 언급해줘. 기타로 내가 알아야 할 내용이 있다면 추가로 언급해줘도 좋아.
(Figma link shortened.) (As the frontend developer I'll change the code along these lines. Compare with Figma and focus on implementing Figma; where Figma and the code differ, even if I didn't mention it, follow Figma. The numbers match the Figma screen numbers. Write one overall task.md listing, screen by screen, what has to be built. Anything I listed that is really backend work, set apart and call out. Add anything else I should know.)
- Decided by the team: the change list for each screen, Figma as the source of truth
- Handed to AI: comparing each Figma frame with the code on
main, checking which Kakao fields the server reads, writing task.md - Output: task.md with a checklist per screen and
file:linereferences. Backend items were set apart (repeat events, custom tags, risk options, car route details). It also flagged that the sign-up rule "letters and numbers" was not checked by the server, and that removing "browse" would remove the only way in without logging in. Kakao's raw response was not checked (no key in that environment); see 8. task.md went into the repository with the first code commit (d72c176) - Next decision: the next day the split between frontend and backend was redrawn (section 11, "task.md")
6. [10-03 21:07] First code from task.md: sign-up
Pasted from task.md:
- [ ] 조건 카드(
PasswordRuleCard)를 비밀번호 확인 위로 옮긴다. 지금은 확인칸 아래(SignupScreen.kt:148)에 있다. - [ ] 조건별 점 색을 바꾼다. 통과 = 초록(JitColor.Green), 미통과 = 빨강(JitColor.Red). 지금은 두 줄 모두 항상 초록이다(RuleRow). task.md의 이 파트 코드 구현 진행하자. 코드 구현 완료되면 간단한 verify 후 task.md 완료된 부분 체크 표시 진행해.
(Implement this part of task.md. When done, verify briefly and check off what's finished.)
- Decided by the team: the items, and a rule set on 09-30 17:58: "git commit 관련한 건 내가 조정할
거야. 절대 commit하지마" (I'll handle git commits. Never commit.) Claude worked only on
front-iter1and never committed - Handed to AI: the code, a compile check, the task.md checkboxes
- Output: the card moved above the confirm field; each dot takes its color from a pass/fail
result. Claude did not write the password rules in the app, because task.md gives them to the
server, so the dots stayed gray until the server check existed, and it checked only the first
line. In the same session: the keyboard covering the form (fixed in
LoginActivity.ktby adding the keyboard inset), a ✓ on matching passwords, the terms checkbox. Committed asd72c176 - Next decision: within 40 minutes 김수연 set the details: gray when empty, recolor on every
keystroke instead of after a pause ("이거 비밀번호 입력이 멈추면이 아니고 바로바로 색깔 반영되게
했으면 좋겠어"), drop the "not similar to email" rule, and hold the server error under the card.
Park Junha shipped the check API (
2819c76); on 10-06 김수연 had the extra error sentences under the card removed (0ab39af)
7. [10-09 11:48] Hide past events
UI 상 지나간 일정은 아예 보이지 않도록 삭제해줘야 할 것 같아. 반복 일정일 경우 향후 며칠 뒤 일정까지 보여줄지도 결정해야 할 것 같고
(Past events should not show in the UI at all. For repeating events we also need to decide how many days ahead to show.)
- Handed to AI: the home list filter and the open question
- Output: past events are left out of the home list only (
EventRepository.buildHome); server data is kept because the weekly report and learning use it. For repeat events it offered 7 days (the phone alarm window, least Kakao quota) or 14 (calendar import) - Decided by the team: "7일 (추천: 알람 등록 범위와 같고 쿼터 부담이 가장 적음) 이걸로 반복 일정
표시 범위 지정하자." (11:52: use 7 days), recorded for the backend's BE-20. Committed as
ac02657(onfront-iter1)
8. Prompt revisions, full text
Live route: 09-25 14:18 → 19:35
Before, with a map screenshot:
경로를 고른 일정은 백그라운드에서 그 수단만 다시 조회해서 소요 시간만 새로 받는게 아니라, 추가로 사진1의 지도에서 가장 빠른 쪽도 표시해뒀으면 좋겠어. 이건 초록색으로 표시되게 하자.
(For events with a chosen route, don't just refresh that mode's travel time in the background; also show the fastest one on the map in picture 1, in green.)
Output: a faster alternative as a green dotted line from the event's origin, also while on the way
(7d90d90, 0.7.0).
After, with a screenshot:
근데, 이 가장 빠른 경로는 유저가 이동 중일 때도 그냥 출발지에서 목적지까지의 가장 빠른 경로를 보여주고 있어. 사실 이미 출발했을 경우에는 출발지에서부터 가장 빠른 경로를 보여주는건 무의미해, 유저희 현재 위치부터 도착지까지 가장 빠른 경로를 보여주는게 낫지. 유저가 이동중일 땐, 실시간으로 위치를 파악해서 목적지까지 유저의 현재 위치부터 목적지까지 가장 빠른 경로를 표시하게 해주자. 그렇다고 진짜 실시간으로 계속 바뀌면 어지러우니까, 유저가 이동 중일 땐 1분에 한번씩 유저의 위치를 파악해서 API를 가지고 목적지까지 가장 빠른 경로를 다시 파악한 뒤, 지도에 표시하는걸로. 너가 말햇듯 초록색은 별로인 것 같고, 보라색으로 하자. 점선 말고 그냥 선으로.
(It still shows the fastest route from the origin while the user is moving, which is meaningless once they've left. While moving, find the user's position once a minute, get the fastest route from there to the destination, and draw it. As you said, green isn't great; make it purple, a solid line.)
Output: a route from the current position while moving, drawn purple and solid (e72d2ae); then a
refresh every minute with no distance condition (9619903, section 4).
Arrival times at stops: 09-23 15:48 → 16:00
Before, with two screenshots:
Render 재배포 했는데, 확인해봐. 추가로, 카카오맵처럼 각 이동수단별로 상세 이동 루트 정보도 뜨게 추가해줘. 출발부터 각 체크포인트, 마지막으론 도착지점까지 쭉 보여야돼. 그리고 각 이동수단별로 해당하는 체크포인트까지의 도착 시작까지. 예를들면, 지하철은 #분#초뒤 도착, 버스는 #분#초뒤 도착. 로직을 잘 이해해보고, 카카오지도의 UI를 참고해서 만들어줘. 그리고, 부산 1호선은 주황인데 서울1호선은 파랑으로 칠하는 문제도 그냥 넘기면 안되고, 우리 앱에서는 이것도 정확하게 반영되도록 해줘야돼. 사진2에서는 우리가 선택하는 경로에는 주황색 점이 뜨는 것 같은데, 이것도 지우고 그냥 파란색 테두리를 사용해줘. 서울대 대표색 남색을 사용하면 좋아. 이번에도 역시 작업은 피그마를 먼저 수정한 뒤, 실제 구현으로 넘어가줘. 그리고, 테스트를 할때마다 전체 검증을 하면 너무 오래 걸려. 테스트는 영향을 받았을 파일들/기능들을 위주로 돌리는 걸로 하자. 전체 검증은 내가 지시할때만 하는걸로 하고.
(I redeployed Render; check it. Also add per-mode route details like Kakao Map, from the start through each checkpoint to the destination, with the arrival time to each checkpoint, e.g. "subway arrives in #m #s, bus arrives in #m #s". Busan line 1 is orange, not Seoul's blue; get that right. Replace the orange dot on the chosen route with a blue border, SNU navy. Figma first again. And run only the tests for affected files and features; a full check only when I ask.)
After, 12 minutes later, with two screenshots:
좋은데, 명확하게 할게 있어. 지금은 "#분 뒤"라고 뜨는게 사용자가 언제 타야하는지를 보여주고 있어. 이걸 원한게 아니라, 각 지하철 역이나 버스 정류장에 다음(+그 다음)의 지하철 / 버스의 도착 시간을 내줬으면 좋겠어. 사진2를 보면 5511 옆에 8분56초가 있는데, 이건 사용자가 8분56초 뒤에 탄다가 아니라, 5511버스가 정류장에 8분56초 뒤에 도착한다는 뜻이잖아. 이것부터 반영해서 피그마를 수정한 뒤, 개발로 넘어가줘
(Good, but one thing to clarify. "In # min" now shows when the user should board. I meant the arrival time of the next train or bus, and the one after, at each station or stop. In picture 2, "8:56" next to 5511 doesn't mean the user boards in 8 min 56 s; it means bus 5511 reaches the stop in 8 min 56 s. Fix Figma for this first, then the code.)
Output: arrival times of the next two vehicles at each stop (b655552).
Time picker: 10-04 20:40 → 20:42
Before, quoting task.md:
- ✅ 결정: 시각은 지금처럼 눌러서 직접 입력한다. 이거 시각도 시각 칸 누르면 롤업, 롤다운 해서 시간 세팅할 수 있게 되면 좋겠는데.
(I wish the time field also open a roll-up/roll-down picker.)
Claude answered that Android's built-in picker is a clock dial and a wheel would have to be built from scratch. After:
아 그럼 시계 다이얼 모양으로 해도 좋다. 그렇게 task.md 바꿔줘
(Then a clock dial is fine. Change task.md to that.)
Output: the clock dial and a calendar date picker in app colors, past dates blocked, steppers
removed, with TwelveHourDisplayTest (8b0e954).
Transit card: 10-05 17:38 → 17:50
Before, after pasting the 13-b line from task.md:
이것도 구현 진행하자. 이때 구간 색 막대는 지하철 호선 색깔이나 버스 색깔과 일치해서 직관적으로 이해할 수 있어야 한다. 구현 진행하자. verify하고 체크 표시. 다만, 대중교통 탭에서 지금 구현된 거 기준으로 봤을 때 bar가 하나 박스 안에 두 개가 표시되거든? 타는 것 기준으로 n분이랑 타는 대중교통 색깔 표시된 것 위에 있는 바는 거슬리니까 제거하고, 각 탭에 있는 저 그림들? figma 보면 직관적으로 자동차, 대중교통, 도보, 자전거 그림이 표시되어 있잖아. 그것도 포함되면 좋겠다.
(Implement this too. The segment bar colors must match the subway line and bus colors. Each transit card now shows two bars; remove the one above the per-ride minutes and colors. Add the car, transit, walk and bike icons on the tabs, as in Figma.)
Output: the upper bar removed, segment bars in line and bus-type colors, tab icons drawn from the Material shapes.
After, 12 minutes later:
좋긴 한데 몇 분 뒤 도착 이런 거 뜨는 게 불필요해 보이고(다음 버스, 그 다음 버스 표시 안 해줘도 될 듯), 버스+도보+지하철 이런 말 안 넣어도 될 것 같아. 그리고 bar 보이는 부분에서 출발에 해당하는 칸은 없어도 될 것 같고 도보, 버스, 지하철에 해당하는 애들만 표시되어도 될 것 같고 모든 bar 내의 칸들에 n분 내용이 들어갔으면 좋겠어. 표시를 위한 간격 조정이 필요할 수 있겠지?(완벽히 비율이 맞을 필요 없다는 뜻이다)
(Good, but "arrives in N min" looks unnecessary (no need for the next bus and the one after), and the "bus+walk+subway" label can go. The bar doesn't need the departure cell; show only walk, bus and subway cells, each with its minutes. Spacing may need adjusting; the proportions don't have to be exact.)
Output: the arrival rows and mode label removed, the waiting cell dropped, every cell labeled
"N분" with a minimum width (SegmentBarWeightsTest). Committed with the route screens (409e327).
Note that Kim Jinho had asked for those next-vehicle arrival times on 09-23 (section 11,
"Arrival times at stops", above); this revision removed them from the card.