Skip to content

Team Charter

Canvas is the source of truth for this term’s assignments. This page may already show changes Canvas does not have yet.

TeamFall3% of the fall grade

  • Team CharterSunday of week 2Rubric

The charter’s spring refresh closes the Team Health Assessment workshop in week 2; it is not a separate assignment.

Up to 48 hours late loses one rubric band on each criterion. After that it scores zero, unless you contacted the instructors before the deadline with a documented reason.

In this assignment you will write your team’s operating agreement: who owns what, how decisions get made, what has to be true before code merges, and what happens when the team isn’t working. It is due in week 2, before you have had the arguments it settles. The Working Agreement guide explains why teams write one and has patterns you can adopt; this page says what you submit.

The charter is an agreement between the people on your team, so it lives with your team’s documents, not in the repository. When it changes (and it should, as your retrospectives teach you things), update it where it lives.

Three artifacts:

  1. The charter itself, 2 to 4 pages of focused, scannable policy (sections below).
  2. CONTRIBUTING.md, in the repository, with the sections below.
  3. The AI context file, in the repository (AGENTS.md, CLAUDE.md, or your tooling’s equivalent): project context, conventions, and constraints your AI tools should know. If your docs are good, this file mostly points at them. In week 2 there may be little code for it to describe: state what the team already knows (the stack, the conventions, the confidentiality boundary) and list what gets added once code exists, with who owns adding it. AGENTS.md is the cross-tool convention and the safest default on a team where people use different tools; per-tool files should point at it rather than duplicate it.

If the repository you inherit already has a CONTRIBUTING.md or an AI context file, extend that file rather than starting a new one, and keep what its previous maintainers wrote that still holds.

AI use: AI may draft any of this. Every student must have read, understood, and agreed to every commitment before the team submits it, and the instruction team will challenge any commitment the team cannot realistically keep.

Three concerns must each have exactly one named owner. The charter names the owner of each, and says when rotation happens (at minimum, once per term). These three names are the ones the defense asks about; do not rename them in your charter, whatever the working agreement guide says about labels being optional. The guide is worth reading for what each of the three concerns covers:

  • Project Manager (PM): owns the board and the partner communication cadence; owes the team an accurate view of where the sprint actually stands.
  • AI Coordinator: owns the AI context file and the confidentiality boundary; owes the team current tooling guidance and a working answer to “can I paste this into that?”
  • Quality Owner: owns CI health, the Definition of Done, and releases; owes the team a repository that’s always one step from a demo.

State what each role owes the team in your own words. A new member should be able to read this section and know who to ask about what.

Owners are counted per concern, not per person, so team size does not change the requirement. On a team of two, one person owns two of the three concerns and the charter names which. On a team of five, the students who hold none of the three name an ownership area instead: a subsystem, the test suite, the deployment, documentation currency, or facilitation. Every student owns something nameable.

Commit to a rotation such that every student chairs at least one decision per term and holds a named role or comparable ownership area at least once across the year. Chairing means driving a decision to a conclusion, not merely having an opinion in the thread. Record who chaired what in each sprint note; that record is what the defense role criterion is checked against.

How choices are proposed, decided, and escalated: your decision rule (consent, majority, PM tie-break), where decisions get recorded (see the ADR guide, and adr.github.io for templates), and at least one explicit escalation or override rule for when you are stuck.

Meeting times, communication channels, and core tools, including where decisions and notes live so an absent teammate can catch up without asking.

A restorative, stepwise conflict path: name it early, talk directly, involve the team, escalate to the instruction team, with time bounds and measurable triggers (missed meetings, unreviewed PR backlog). Accountability ties to observable evidence (PRs, reviews, attendance), not testimony. The Working Agreement guide has conflict-path patterns you can adopt.

Meeting norms that let everyone contribute (time zones, note-taking, turn-taking), how a teammate requests an accommodation, and how the team surfaces barriers without drama.

State which data, code, and documents may enter which AI tools, following what your partner has stated about confidentiality: any NDA, the rules for their data, and which tools may see the code. Say what is fully open, what may go only into approved or local tools, and what never leaves the repository, covering code, partner data, credentials, and meeting content. If your partner hasn’t stated these by week 2, give the boundary you are assuming and the week your team will confirm it with them. See the Generative AI guide. This section is the team’s agreement; the parts your AI tools must follow can also go into the repository as rules, in the AI context file or your tool’s rules files.

CONTRIBUTING.md is written for whoever makes the next change: a teammate, your partner’s developers, the team after you, or an AI tool. It has these sections, each specific to your repository: every command exact, every rule with its value (the branch pattern, the number of approvals, the review window). Add any section your repository needs beyond them.

  1. Development setup: what a contributor needs beyond the README’s quickstart, such as development dependencies, environment variables and how to get their values without committing them, and local services. Link the README for the rest rather than repeating it.
  2. Local checks: the commands that run the tests, the linter, and the formatter, the same ones CI runs.
  3. Branches and commits: the default branch, the branch naming rule, and the commit message convention, with one example of each.
  4. Pull requests and review: what a pull request includes, who reviews it and how many approvals it needs, how soon a review is expected, and how it merges.
  5. Definition of Done, below.
  6. Where other work lives: for each kind of work that does not land as a pull request (an issue, a design document, a ticket in your partner’s system), where it lives and who accepts it there. If all of your work lands as pull requests, say so in one line.
  7. Getting help: where to ask, and how soon to expect an answer.

In week 2 some commands may not exist yet; list each with the hook, CI job, or test suite that will add it.

The checks a change must pass before it merges: tests, review, docs updated, lint and security checks, and the CI (continuous integration) gates that enforce them. The term comes from the Scrum Guide, which treats it as a shared commitment rather than a checklist one person holds. Point at the CI configuration, hook, or test that enforces each check. In week 2 some of them may not exist yet, because there is no code to check: name the gate you will add (a pre-commit hook, a CI job, a test suite), the sprint it lands in, and who owns it.

Submit one PDF containing all three artifacts, with the cover Submitting Your Work describes.

Rubric: 100 points across 7 criteria
CriterionRatings
Roles20 pointsOutcomes: SO5
  • Exceeds Expectations (20)All three concerns owned by a named person, with a published rotation schedule, a decision rule, at least one escalation or override rule, and what each owner owes the team.
  • Meets Expectations (16)Owners are named, but a concern is unowned, or the rotation, the escalation rule, or what each owner owes is missing.
  • Does Not Meet Expectations (4)No named roles, or no decision rule.
Conflict and inclusion15 pointsOutcomes: SO5
  • Exceeds Expectations (15)A restorative stepwise path with measurable triggers, accountability tied to PRs, reviews, or attendance, and inclusion norms covering how meetings let everyone contribute, how a teammate requests an accommodation, and how the team surfaces barriers.
  • Meets Expectations (12)A conflict path with a step past talking directly exists, but a trigger is missing or not measurable, accountability is not tied to PRs, reviews, or attendance, or the inclusion norms leave out meetings, accommodations, or barriers.
  • Does Not Meet Expectations (3)No conflict path, or no step past talking directly.
Cadence and tools10 pointsOutcomes: SO3
  • Exceeds Expectations (10)Meeting times, which channel is used for what, and where decisions are recorded.
  • Meets Expectations (8)Names meeting times and channels, but not which channel is used for what, or not where decisions are recorded.
  • Does Not Meet Expectations (2)Missing, names no meeting time, or names no channel.
Definition of Done15 pointsOutcomes: SO2
  • Exceeds Expectations (15)In CONTRIBUTING.md: specific checks, each tied to the CI gate, hook, or test that enforces it; a gate not built yet is named with the sprint it lands in and its owner.
  • Meets Expectations (12)A Definition of Done exists, but a check is tied to no CI gate, hook, or test and is not named as a gate still to be built, it is kept outside CONTRIBUTING.md, or it names gates the repository does not have without the sprint or the owner for them.
  • Does Not Meet Expectations (3)Missing, or a restatement of "it works".
CONTRIBUTING.md and AI context fileThe Definition of Done is scored in its own criterion; this one scores the other required sections of CONTRIBUTING.md and the AI context file.15 pointsOutcomes: SO3
  • Exceeds Expectations (15)Every other required section of CONTRIBUTING.md is present and specific to the repository, with exact commands (or, for a command not built yet, the hook, CI job, or test suite that will add it) and stated values; the AI context file is published, and any part of it that cannot be written before there is code is listed with an owner.
  • Meets Expectations (12)A required section of CONTRIBUTING.md is missing or generic (boilerplate text, placeholder commands), or the AI context file leaves gaps with no owner.
  • Does Not Meet Expectations (3)Either file is missing, or CONTRIBUTING.md has no section specific to the repository.
AI and confidentiality15 pointsOutcomes: SO4
  • Exceeds Expectations (15)Names which tools each kind of data and code may enter, consistent with what the partner has stated about confidentiality (any NDA, the rules for their data, and which tools may see the code); where the partner has not stated it yet, the section gives the assumed boundary and the week the team will confirm it with the partner.
  • Meets Expectations (12)Present, but leaves some data or code with no named tool boundary, does not match what the partner has stated, or, where the partner has not stated it yet, gives no assumed boundary or no week to confirm it.
  • Does Not Meet Expectations (3)Missing, or written so that it would permit a confidentiality breach.
Writing: length, sections, quotable commitments10 pointsOutcomes: SO3
  • Exceeds Expectations (10)2 to 4 pages; headed by the required sections; every commitment is a single sentence a teammate could quote back.
  • Meets Expectations (8)One of the three missing: outside the length, a section missing, or commitments buried in paragraphs.
  • Does Not Meet Expectations (2)Two or more of the three missing.

Set Up Your Repository’s Skills covers the AI context file; do it in week 1. Beyond that: Assess Your Team’s Conflict Styles for conflict and inclusion, and Responsibility Assignment Matrix (RACI) for the roles criterion.

Browse Team and Workflow when these run out.