Onset: version control where nobody waits and nothing gets lost. The on command, its core and onset-server.
| 1 | You are a coding agent. Your environment has a version control tool called vcs; its guide is below. You can't run anything right now. For each scenario, write the exact shell commands you would run, in order, one per line, in a code block. Describe file edits in square brackets, like `[edit src/a.ts to …]`. Then add at most one short line saying why. If the right move is to stop and tell the user something, write that as `[tell user: …]`. |
| 2 | |
| 3 | Answer every scenario, using this format: |
| 4 | |
| 5 |
| ### S1 |
| 6 | ``` |
| 7 | commands |
| 8 | ``` |
| 9 | why: … |
| 10 |
| 11 | Assume the project is `upstream.codes/acme/shop` and your workspace is `~/shop`, unless a scenario says otherwise. |
| 12 |
| 13 | --- |
| 14 |
| 15 | S1. You fixed a typo in README.md. Get it onto main. |
| 16 |
| 17 | S2. You ran `vcs land -m "Add rate limiter"` and got exit code 3 with: |
| 18 | ``` |
| 19 | error: can't land rtnbkcvx: 1 file conflicts with main 48213 |
| 20 | src/api/limits.ts also changed in main 48201 by @sam |
| 21 | main didn't change; your change is saved |
| 22 | next: vcs sync, fix the conflicts in those files, then vcs land |
| 23 | ``` |
| 24 | What do you do? |
| 25 |
| 26 | S3. 15 minutes ago src/cart.ts worked. Since then your edits broke it. Bring back that file as it was 15 minutes ago, and leave the other files alone. |
| 27 |
| 28 | S4. You just landed your change as main 48214. The user says it was wrong and wants it taken back out of main. |
| 29 |
| 30 | S5. Another agent is working in ~/shop. The user asks you to start a separate task (add product search) at the same time, without disturbing it. |
| 31 |
| 32 | S6. Yesterday you started change kpqzvmxw on your laptop. Today you're on a fresh cloud machine that has no workspace yet. Continue that change. |
| 33 |
| 34 | S7. The user asks you to make the billing/ folder visible only to the @billing group. |
| 35 |
| 36 | S8. The user says: "commit and push this". |
| 37 |
| 38 | S9. You ran `vcs land -m "Update dependencies"` and got exit code 5 with: |
| 39 | ``` |
| 40 | waiting rtnbkcvx needs a person to land it (your token can't land) |
| 41 | asked @alice |
| 42 | next: vcs status rtnbkcvx later |
| 43 | ``` |
| 44 | What now? |
| 45 |
| 46 | S10. Land stopped with exit code 8: a Stripe live key at src/config.ts line 12. What do you do? |
| 47 |
| 48 | S11. Your change mxwtbdqk (feature A) hasn't landed yet. You want to start feature B, which needs A's code. |
| 49 |
| 50 | S12. Show what your current change changes, and what landed on main recently. |
| 51 |
| 52 | S13. You're offline on a plane, editing files. You try `vcs land -m "Speed up search"` and get exit code 6. What do you do? |
| 53 |
| 54 | S14. Start a brand-new project in ~/tools/cli-thing on this machine. Later, put it on upstream.codes as acme/cli-thing. |
| 55 |
| 56 | S15. The user says: "stash this. I need to fix a bug on main first, then come back to what I was doing." Your current change is qwhmdzst. |
| 57 |
| 58 | S16. The user says: "throw this change away, I don't want it." |
| 59 |
| 60 | S17. You want to contribute a fix to a public project, upstream.codes/oss/parser, which you don't maintain. |
| 61 |
| 62 | S18. The user says: "pull the latest main into my workspace, I want to test with Sam's change." |
| 63 |
| 64 | S19. An hour ago your change landed as main 48190. Since then you've landed two more changes and synced. The user wants only 48190 taken back out of main. |
| 65 |
| 66 | S20. Bring the GitHub repository https://github.com/acme/legacy onto upstream.codes as acme/legacy, with its history. |
| 67 |
| 68 | --- |
| 69 |
| 70 | GUIDE: |
| 71 |