Complete the form together before class. Leave gray tutor fields and signatures empty. A checked box is a promise; an unchecked box is not. The receiving team must provide enough information for another beginner team to work safely in its project.
A1 is assigned by the tutor. Give the contract a short name in A2, such as Fix filenames with spaces. In B1-B4, the receiving team pays and owns the target project; the implementing team writes the change.
A GitLab reference is an exact pointer: project path courses/team-pine/app, issue #27, commit a1b2c3d4, tag v0.3.0, file README.md, or merge request !14. Use C1-C4 to identify the issue and freeze the code version.
In C5-C6, provide what outsiders need: build/run steps, repository access, configuration, test accounts, and safe test data. “Ask us later” is not enough.
Choose D1 for a bug fix or D2 for a feature. In D3, describe observable behaviour; in D4, explain its value.
my file.pdf, users can open it from the file list without an error.”Use E1 for allowed work and E2 for boundaries, such as “Do not change authentication or the database schema.”
Select at least one check in F1-F4 and fill its exact reference, environment, steps, command, or expected result. Avoid “works correctly.” Use G1-G6 only for quality obligations both teams understand; describe measurable additions in G7.
The normal delivery is a merge request in H1. The implementing team does not merge it. Use H2-H5 for tests, documentation, demonstration, and other stored evidence. Future numbers are added at completion.
Write whole bonus points in I1 and an exact fixed deadline in I2, for example 2026-10-19 23:59. Use J1 only for non-conflicting additions.
Read the full contract and point-loss conditions first. Required representatives sign K1-K2 in person. The tutor fills A1 and L1-L4.