22title : First steps in mature projects
33---
44
5+ import { Steps } from " @astrojs/starlight/components" ;
6+
57Large, long-lived repositories require a different onboarding flow than greenfield projects. The first objective is
68predictability, not speed.
79
@@ -31,7 +33,10 @@ In [Expensify](https://github.com/Expensify/App), tasks can be created inside re
3133place to view all tasks relevant to one user. The feature was a home-screen widget named ` Your tasks ` , sourcing tasks
3234from the self-DM report and rendering only when tasks exist. Here is a rough outline of what was done:
3335
36+ <Steps >
37+
34381 . Start in ** ask** mode and map the current implementation:
39+
3540 ``` md
3641 Before proposing changes, map:
3742
@@ -40,8 +45,10 @@ from the self-DM report and rendering only when tasks exist. Here is a rough out
4045 3 . where home widgets are implemented.
4146 Show exact files and functions.
4247 ```
48+
43492 . Summarize the exploration output using ` /summarize ` to reclaim context window for planning the feature.
4450 Then ask for a plan with strict constraints.
51+
4552 ``` md
4653 I want to add a "Your tasks" widget to home screen.
4754 Requirements:
@@ -56,31 +63,46 @@ from the self-DM report and rendering only when tasks exist. Here is a rough out
5663 Use @TimeSensitiveSection as implementation reference.
5764 Keep diffs surgical and avoid unrelated refactors.
5865 ```
66+
59673 . Review the plan in a separate thread or window before implementation.
60- - This often catches hidden coupling assumptions.
61- - If needed, revise the plan before writing any feature code.
68+
69+ This often catches hidden coupling assumptions.
70+ If needed, revise the plan before writing any feature code.
71+
62724 . Implement tests first.
63- - Add unit tests and acceptance-path coverage before production code.
64- - Fix ESLint/TypeScript issues immediately to keep feedback clean.
65- - Commit them before proceeding with the next step.
73+
74+ Add unit tests and acceptance-path coverage before production code.
75+ Fix ESLint/TypeScript issues immediately to keep feedback clean.
76+ Commit them before proceeding with the next step.
77+
66785 . Execute implementation steps in parallel when independent.
67- - Keep changes small and traceable.
68- - If reused UI pieces are too tightly coupled to another screen, stop and keep boundaries clean.
79+
80+ Keep changes small and traceable.
81+ If reused UI pieces are too tightly coupled to another screen, stop and keep boundaries clean.
82+
69836 . Run [ Cursor Agent Review] ( https://cursor.com/docs/agent/review ) and then verify manually.
70- - In this case, automated review found an important edge case: deletions are soft deletions, so deleted tasks must
71- be filtered.
84+
85+ In this case, automated review found an important edge case: deletions are soft deletions, so deleted tasks must
86+ be filtered.
87+
72887 . Use [ Cursor Debug Mode] ( https://cursor.com/docs/agent/modes#debug ) to address the issue.
73- - The agent can add ` console.log ` statements to help with debugging.
74- - The integrated browser with log access enables the agent to inspect changes on the fly in a closed loop.
89+
90+ The agent can add ` console.log ` statements to help with debugging.
91+ The integrated browser with log access enables the agent to inspect changes on the fly in a closed loop.
92+
75938 . Ask the agent to fill the PR template based on actual changes.
76- - Because this prompt was run in the same agent thread, the agent had a lot of useful context from the previous
77- steps, which often produces a high-quality draft for further manual writing.
94+
95+ Because this prompt was run in the same agent thread, the agent had a lot of useful context from the previous
96+ steps, which often produces a high-quality draft for further manual writing.
97+
7898 ``` md
7999 Fill our PR template based only on this branch's changes.
80100 Include: scope, test evidence, risks, and follow-up tasks.
81101 Do not claim work that was not implemented.
82102 ```
83103
104+ </Steps >
105+
84106This flow is intentionally conservative: ask first, plan explicitly, test first, implement surgically, and verify edge
85107cases before broadening scope.
86108
0 commit comments