WEEK 2Monday

The AI-Augmented Team

COSC 40943 · Senior Design · Week 2

WEEK 2Monday

Last week you signed it

You are accountable for what the agent writes.

Today: what you are signing into, and who else is on the team.

WEEK 2Monday

One line from a real repository

The glossary fixes vocabulary. Use the defined term in code identifiers and UI text, never a synonym.

CLAUDE.md, root of Project Pulse

Ask the room

Who decided this, and when?

WEEK 2Monday

So what if it had stayed in the meeting?

  • A teammate asks an agent to add a peer-evaluation endpoint
  • The agent has never attended a meeting
  • It finds no rule, picks a reasonable word, ships reviewee
  • The codebase says evaluatee everywhere else
Pitfall

Nothing fails. Tests pass. The pull request looks fine.

Six weeks later a query silently returns nothing, and the fix is a migration.

WEEK 2Monday

1999: two teams, no bad code

Mars Climate Orbiter fires its engine to enter orbit and is never heard from again.

Ground software produced pound-seconds. Navigation software consumed newton-seconds.

Key point

$125M of spacecraft. Each team's code was correct under its own assumption.

WEEK 2Monday

The brain is a language model

Trained by predicting the next token over an enormous corpus. It knows Spring Boot. It does not know your project, which was not in the training data.

And it is a function, not a process: text in, text out, then it stops. Nothing carries over.

Ask the room

Then why does a chat conversation seem to remember?

WEEK 2Monday

The whole conversation is re-sent every turn

What looks like memory is re-reading.

  • The block of text sent to the model is its context
  • The size limit on that block is the context window, measured in tokens
Key point

Anything not in the context this turn does not exist this turn.

WEEK 2Monday

The agent is the loop around it

flowchart LR
    C["context"] --> L["LLM"]
    L --> A["action<br/>read, run, edit"]
    A --> O["result"]
    O --> C
    R[("your repository")] -.-> C
    Y["what you type"] -.-> C
WEEK 2Monday

When the session ends, the context is discarded

Tomorrow starts empty and rebuilds from what you type and what it reads from disk.

Ask the room

So: does your agent know what your team decided on Wednesday?

WEEK 2Monday

What it can and cannot read

Can

Files in the repo. The issue you point it at. Output of commands it runs.

Cannot

What was said out loud. The client's tone. Anything a teammate has not written down.

Your Slack is not documentation. It is an oral tradition with search.

WEEK 2Monday

So the repository is the memory

Key point

The repository is the team's shared memory, and it is the only memory the agent has.

A decision that lives only in Slack is one your agent will contradict, confidently, next week.

WEEK 2Monday

GitHub as that memory

If the repository is the only memory, the work has to live there too. Not just the code.

Artifact What it is What it represents
Project a board that displays issues your state, at a glance
Issue a unit of customer value, with acceptance criteria one use case
Sub-issue a unit of implementation work one development task
Pitfall

The board does not contain the work. Delete the board, lose a convenience. Delete the issues, lose the project.

WEEK 2Monday

Where the work lives

flowchart TD
    M["Milestone<br/><i>use-case area</i>"] --> I["Issue<br/><i>one use case</i>"]
    I --> S1["Sub-issue<br/><i>task</i>"]
    I --> S2["Sub-issue<br/><i>task</i>"]
    S1 --> B1["branch"] --> P1["pull request"]
    S2 --> B2["branch"] --> P2["pull request"]
Key point

Every sub-issue has exactly one assignee: the person who signs it, not the one who typed it.

WEEK 2Monday

Well-formed means a stranger can tell it is done

That is what acceptance criteria are for. It is the only test worth remembering.

WEEK 2Monday

Issue #33, 124 lines

Make Project Pulse Mobile-Friendly for Student and Instructor Workflows

Background · Summary · the exact pages in scope · Current behavior · Proposed improvement · Non-goals · Acceptance criteria · Risks · Rationale

Key point
  • [ ] No horizontal scrolling on common phone widths (~375px)
WEEK 2Monday

Issue #37, three sentences

When logging in, and the credentials are invalid/wrong, the application does not show an error on the page.

The solution should be: creating a pop-up that gives feedback to the user. e.i, "invalid credentials."

The console shows the error, but not the page.

Ask the room

Everything here is true. What is missing?

WEEK 2Monday

Now hand #37 to an agent

Given to a person Given to an agent
What happens They ask you a question It picks an answer
You find out Immediately, in Slack At review, maybe
It looks like An interruption Finished work
Pitfall

Under-specification used to arrive as friction. Now it arrives as a completed pull request.

WEEK 2Monday

What should a branch be?

A branch is not a unit of work. It is a unit of integration: one branch, one pull request, one merge.

Key point

The smallest change that leaves main green and is worth reviewing on its own.

WEEK 2Monday

Splitting for merge is not splitting for ownership

Pitfall

"I'll take the front end." "I'll take login."

You saw this in week 1. It is fatal by November.

Key point

One developer owns a use case end to end: front end, back end, tests, pipeline.

WEEK 2Monday

Review used to be a second opinion

Now it is the first read.

Typing was a slow, involuntary review. The author understood every line because they wrote it.

The agent

The agent wrote it. The author read the prompt and a summary. Nobody has read the diff.

WEEK 2Monday

LGTM

Looks Generated To Me.

  • Read the issue before the diff
  • Ask what the agent assumed
  • Look where nobody prompted: extensions, empty case, error path
  • Explanation test: why is this line here, what does it do on empty input
WEEK 2Monday

All of it, on one use case

Issue, sub-issues, branches, review, merge.

UC-TEA-assign-students · the course admin assigns students to teams

WEEK 2Monday

First, what "done" means

Issue #41 · UC-TEA-assign-students · the course admin assigns students to teams

  • An admin can add a student to a team in their section
  • A student already on another team in that section is moved, not duplicated
  • A student outside the section is rejected, with a message naming why
  • The roster updates without a page reload
WEEK 2Monday

One owner, three merges

Maya owns all of it. She is a full-stack owner of one use case, not the team's backend person.

Sub-issue Branch main after
#42 endpoint, service, rejection feat/42-...-backend green, nothing calls it yet
#43 API function, the control feat/43-...-ui green, an admin can do it
#44 end-to-end coverage test/44-...-e2e green and verified
Key point

Three reviewable merges beat one large one. Same person, sequential.

WEEK 2Monday

What Maya actually does on #42

  • Claims it; the card moves to In progress
  • git switch -c feat/42-assign-student-backend off main
  • Works it, agent or not. Commits carry the number
  • Opens a pull request saying Closes #42, naming the criteria it satisfies
  • Devon reviews. The issue first, then the diff against it
  • Merge. #42 closes, the board moves, #41 stays open at one of three
WEEK 2Monday

And the one that needs none of this

UC-RUB-view-rubric: one Vue call, one controller method, one service method, five tests.

One sub-issue. One branch. One hour.

Key point

Reaching for three sub-issues here is following a rule instead of thinking.

WEEK 2Monday

What the chain buys you

Issue, sub-issue, branch, pull request. Every link recorded, for free.

flowchart LR
    R["use case<br/>in the spec"] --> I["Issue"] --> S["Sub-issue"] --> B["branch"] --> C["commits"] --> P["pull request"] --> M["merged code"]

Answerable without asking anyone:

  • Which commits implemented this requirement?
  • Which pull request completed this use case, and who reviewed it?
  • This line is strange. What asked for it?
WEEK 2Monday

Your board's vocabulary

Column What it actually means
Backlog agreed to, not started. Ordered, not a pile
In progress someone is working on it right now
Done merged and satisfying its acceptance criteria
Iteration the span you pull work into. Yours is one week
WEEK 2Monday

Onboard the agent like a new hire

It re-onboards itself every session. So put it in a file.

AGENTS.md      the real charter, read by ~two dozen tools
CLAUDE.md      one line: @AGENTS.md
WEEK 2Monday

Project Pulse layers it

File What it carries
CLAUDE.md (root) what the product is, how to start all three services, build and test commands, the workflow
backend/CLAUDE.md Java and Spring conventions, the package map, how tests are organized
frontend/CLAUDE.md Vue conventions, where the per-domain API modules live
docs/CLAUDE.md the identifier schemes for the specification itself
Key point

Conventions live next to the code they govern.

WEEK 2Monday

Your contract goes in the repo too

docs/team-contract.md, signed by all six. Each member commits their own signature line.

Clause Why it is there
Recurring weekly meeting time the clause every other clause depends on
Channel, and expected response time so "I did not see it" stops being an argument
How decisions get made how you break a tie without a two-week standoff
How work gets claimed so nothing is owned by everyone
Git workflow and review branch naming, who reviews, what blocks a merge
AI usage guidelines what you delegate, and who signs before merge
When someone does not deliver agreed while nobody is angry
Key point

Fix the meeting time first. It is the clause the others depend on.

WEEK 2Monday

This week

  • Wednesday: your team, your client, your TA. Read your brief before Friday
  • Friday: your team's first hour. Contract signed, repo and board standing, Checkpoint 0
  • Friday: Hello, Project Pulse is due
Pitfall

Wednesday is where you find out who you are working with for the next eight months.

The AI-Augmented Team

space PgDn
Next step or slide
PgUp
Back
S
Skip to the next slide
O
Overview of all slides
N
Speaker notes
B
Black the screen
Ctrl+P
Print / PDF handout, one slide per page