@ranger-testing/ranger-cli 1.0.14 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +57 -131
  2. package/build/cli.js +60 -62
  3. package/build/cli.js.map +1 -1
  4. package/build/commands/addEnv.js +1 -1
  5. package/build/commands/addEnv.js.map +1 -1
  6. package/build/commands/clean.js +1 -1
  7. package/build/commands/clean.js.map +1 -1
  8. package/build/commands/dataMcpServer.js +1 -1
  9. package/build/commands/feature.js +91 -34
  10. package/build/commands/feature.js.map +1 -1
  11. package/build/commands/hook.js +27 -0
  12. package/build/commands/hook.js.map +1 -0
  13. package/build/commands/hooks/disable.js +25 -0
  14. package/build/commands/hooks/disable.js.map +1 -0
  15. package/build/commands/hooks/enable.js +44 -0
  16. package/build/commands/hooks/enable.js.map +1 -0
  17. package/build/commands/hooks/exitPlanMode.js +35 -0
  18. package/build/commands/hooks/exitPlanMode.js.map +1 -0
  19. package/build/commands/hooks/index.js +10 -0
  20. package/build/commands/hooks/index.js.map +1 -0
  21. package/build/commands/hooks/output.js +53 -0
  22. package/build/commands/hooks/output.js.map +1 -0
  23. package/build/commands/hooks/planReminder.js +46 -0
  24. package/build/commands/hooks/planReminder.js.map +1 -0
  25. package/build/commands/hooks/planStart.js +30 -0
  26. package/build/commands/hooks/planStart.js.map +1 -0
  27. package/build/commands/hooks/postEdit.js +41 -0
  28. package/build/commands/hooks/postEdit.js.map +1 -0
  29. package/build/commands/hooks/preCompact.js +30 -0
  30. package/build/commands/hooks/preCompact.js.map +1 -0
  31. package/build/commands/hooks/sessionStart.js +35 -0
  32. package/build/commands/hooks/sessionStart.js.map +1 -0
  33. package/build/commands/hooks/stopHook.js +54 -0
  34. package/build/commands/hooks/stopHook.js.map +1 -0
  35. package/build/commands/index.js +1 -3
  36. package/build/commands/index.js.map +1 -1
  37. package/build/commands/skillup.js +36 -69
  38. package/build/commands/skillup.js.map +1 -1
  39. package/build/commands/start.js +1 -1
  40. package/build/commands/start.js.map +1 -1
  41. package/build/commands/status.js +17 -21
  42. package/build/commands/status.js.map +1 -1
  43. package/build/commands/updateEnv.js +1 -1
  44. package/build/commands/updateEnv.js.map +1 -1
  45. package/build/commands/useEnv.js +1 -1
  46. package/build/commands/utils/browserSessionsApi.js +1 -1
  47. package/build/commands/utils/claudePlugin.js +85 -0
  48. package/build/commands/utils/claudePlugin.js.map +1 -0
  49. package/build/commands/utils/cliSecret.js +1 -1
  50. package/build/commands/utils/featureApi.js +23 -0
  51. package/build/commands/utils/featureApi.js.map +1 -1
  52. package/build/commands/utils/git.js +44 -0
  53. package/build/commands/utils/git.js.map +1 -0
  54. package/build/commands/utils/keychain.js +1 -1
  55. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  56. package/build/commands/utils/sessionCache.js +133 -0
  57. package/build/commands/utils/sessionCache.js.map +1 -0
  58. package/build/commands/utils/skillContent.js +3 -3
  59. package/build/commands/utils/skillContent.js.map +1 -1
  60. package/build/commands/utils/skills.js +1 -1
  61. package/build/commands/utils/skills.js.map +1 -1
  62. package/build/commands/verifyFeature.js +22 -2
  63. package/build/commands/verifyFeature.js.map +1 -1
  64. package/build/commands/verifyInBrowser.js +1 -1
  65. package/build/skills/ranger/SKILL.md +164 -0
  66. package/build/skills/ranger/create.md +151 -0
  67. package/build/skills/ranger/start.md +122 -0
  68. package/build/skills/{feature-tracker → ranger}/verify.md +33 -3
  69. package/package.json +1 -1
  70. package/build/commands/postEditHook.js +0 -25
  71. package/build/commands/postEditHook.js.map +0 -1
  72. package/build/commands/preCompactHook.js +0 -85
  73. package/build/commands/preCompactHook.js.map +0 -1
  74. package/build/commands/sessionStartHook.js +0 -64
  75. package/build/commands/sessionStartHook.js.map +0 -1
  76. package/build/commands/utils/mcpConfig.js +0 -1
  77. package/build/commands/utils/mcpConfig.js.map +0 -1
  78. package/build/skills/feature-tracker/SKILL.md +0 -163
  79. package/build/skills/feature-tracker/create.md +0 -114
  80. package/build/skills/feature-tracker/report.md +0 -159
  81. package/build/skills/feature-tracker/start.md +0 -93
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessionStartHook.js","sourceRoot":"","sources":["../../src/commands/sessionStartHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IAClC,yCAAyC;IACzC,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAE/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO;IACX,CAAC;IAED,MAAM,YAAY,GAAG,6BAA6B,EAAE,CAAC;IAErD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CACP,+DAA+D,CAClE,CAAC;IACF,OAAO,CAAC,GAAG,CACP,iEAAiE,CACpE,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CACP,uFAAuF,CAC1F,CAAC;IACF,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CACP,8EAA8E,CACjF,CAAC;IACF,OAAO,CAAC,GAAG,CACP,mFAAmF,CACtF,CAAC;IACF,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CACP,4EAA4E,CAC/E,CAAC;IACF,OAAO,CAAC,GAAG,CACP,qFAAqF,CACxF,CAAC;IACF,OAAO,CAAC,GAAG,CACP,iFAAiF,CACpF,CAAC;IACF,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAE/C,4DAA4D;IAC5D,gDAAgD;IAChD,yBAAyB;AAC7B,CAAC"}
@@ -1 +0,0 @@
1
- (function(_0x27e776,_0xc57177){const _0x37632e=_0x4c02,_0x4fa91c=_0x27e776();while(!![]){try{const _0x698b7b=-parseInt(_0x37632e(0x200))/0x1*(parseInt(_0x37632e(0x207))/0x2)+parseInt(_0x37632e(0x208))/0x3+-parseInt(_0x37632e(0x1fc))/0x4*(-parseInt(_0x37632e(0x1fa))/0x5)+-parseInt(_0x37632e(0x1f9))/0x6+parseInt(_0x37632e(0x1f2))/0x7*(parseInt(_0x37632e(0x201))/0x8)+-parseInt(_0x37632e(0x1f8))/0x9*(-parseInt(_0x37632e(0x203))/0xa)+-parseInt(_0x37632e(0x1f6))/0xb;if(_0x698b7b===_0xc57177)break;else _0x4fa91c['push'](_0x4fa91c['shift']());}catch(_0x8d7fa5){_0x4fa91c['push'](_0x4fa91c['shift']());}}}(_0x283a,0x2654a));function _0x4c02(_0x4b42e5,_0x4572ed){_0x4b42e5=_0x4b42e5-0x1f1;const _0x283a73=_0x283a();let _0x4c02c4=_0x283a73[_0x4b42e5];return _0x4c02c4;}import{readFile,writeFile}from'fs/promises';import{existsSync}from'fs';import{join}from'path';export function getMcpConfigPath(){const _0x28f1eb=_0x4c02,_0x24abcf={'CGcdp':_0x28f1eb(0x1f1)};return join(process[_0x28f1eb(0x205)](),_0x24abcf[_0x28f1eb(0x1f3)]);}export async function loadMcpConfig(){const _0x98aee2=_0x4c02,_0x53c790={'ldcmE':function(_0x261f2d){return _0x261f2d();},'wtgsG':function(_0x1ed47d,_0x47df48,_0x586c84){return _0x1ed47d(_0x47df48,_0x586c84);},'gYpqY':_0x98aee2(0x204)},_0x46ff4a=_0x53c790[_0x98aee2(0x1fb)](getMcpConfigPath);if(existsSync(_0x46ff4a))try{const _0x29829d=await _0x53c790[_0x98aee2(0x1fd)](readFile,_0x46ff4a,_0x53c790['gYpqY']);return JSON['parse'](_0x29829d);}catch{return{'mcpServers':{}};}return{'mcpServers':{}};}export async function saveMcpConfig(_0x836328){const _0x4ada1f=_0x4c02,_0x2e223d={'XENCi':function(_0xbd4c68){return _0xbd4c68();},'UyrCZ':function(_0x15ec54,_0x532786,_0x156835){return _0x15ec54(_0x532786,_0x156835);}},_0x56a87e=_0x2e223d['XENCi'](getMcpConfigPath);await _0x2e223d[_0x4ada1f(0x202)](writeFile,_0x56a87e,JSON[_0x4ada1f(0x1f7)](_0x836328,null,0x2));}export function hasRangerServer(_0x15690f){const _0x269dde=_0x4c02;return!!_0x15690f[_0x269dde(0x206)]['ranger'];}function _0x283a(){const _0x44dc41=['mcpServers','5386fEHwAV','642120LpvByj','.mcp.json','7vnwIsI','CGcdp','@ranger-testing/ranger-cli','ranger','4018938pyiKSZ','stringify','489609HkUlHK','564618gkViqW','856210EAgSbt','ldcmE','4reGHCr','wtgsG','MzoMI','npx','101bRhJcl','1849352KNyfkJ','UyrCZ','50lwfBej','utf-8','cwd'];_0x283a=function(){return _0x44dc41;};return _0x283a();}export function setRangerServer(_0x15b49c){const _0x18ddc1=_0x4c02,_0x466c38={'nISnc':_0x18ddc1(0x1ff),'MzoMI':_0x18ddc1(0x1f4),'aUwTs':'data-mcp-server'};_0x15b49c['mcpServers'][_0x18ddc1(0x1f5)]={'command':_0x466c38['nISnc'],'args':[_0x466c38[_0x18ddc1(0x1fe)],_0x466c38['aUwTs']]};}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcpConfig.js","sourceRoot":"","sources":["../../../src/commands/utils/mcpConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAY5B,MAAM,UAAU,gBAAgB;IAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IAC/B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACD,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACL,8BAA8B;YAC9B,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QAC9B,CAAC;IACL,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAiB;IACjD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC7C,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC7C,iEAAiE;IACjE,qCAAqC;IACrC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG;QACvB,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,4BAA4B,EAAE,iBAAiB,CAAC;KAC1D,CAAC;AACN,CAAC"}
@@ -1,163 +0,0 @@
1
- ---
2
- name: feature-tracker
3
- description: "Ranger's core development workflow for building e2e features. Use this skill for ANY feature development, implementation, or code changes that touches UI. Automatically tracks progress with checklist items, verifies implementations in the browser, and generates completion reports with evidence. Start every coding task by checking for existing features to resume."
4
- ---
5
-
6
- You are a Feature Development Agent. Your job is to systematically implement features while tracking progress with verifiable checklist items. Every implementation gets verified in the browser with evidence (screenshots, traces, conversation logs).
7
-
8
- # When to Use This Skill
9
-
10
- Use this skill for ANY substantial feature work:
11
- - Building new features
12
- - Multi-step development tasks
13
- - Code changes that should be verified
14
- - Continuing previous feature work
15
-
16
- # Workflow Overview
17
-
18
- ```
19
- ┌───────────────────────────────────────┐
20
- │ 1. RESUME OR CREATE FEATURE │ ◀── Skill: start.md, create.md
21
- │ • Resume existing feature │
22
- │ • OR create new feature │
23
- └───────────────────┬───────────────────┘
24
-
25
-
26
- ┌───────────────────────┐
27
- │ │
28
- │ ┌───────────────┐ │
29
- │ │ 2. IMPLEMENT │ │ ◀── You write code (not covered by skill)
30
- │ │ in code │ │
31
- │ └───────┬───────┘ │
32
- │ │ │
33
- │ ▼ │
34
- │ ┌───────────────┐ │
35
- │ │ 3. VERIFY │ │ ◀── Skill: verify.md
36
- │ │ in browser │ │
37
- │ └───────┬───────┘ │
38
- │ │ │
39
- │ ▼ │
40
- │ More items? │
41
- │ YES ─┘ │
42
- │ │
43
- └───────────┬───────────┘
44
- │ NO (all verified)
45
-
46
- ┌───────────────────────────────────────┐
47
- │ 4. REPORT │ ◀── Skill: report.md
48
- │ • Generate completion report │
49
- │ • Share with user │
50
- └───────────────────────────────────────┘
51
- ```
52
-
53
- ---
54
-
55
- # Step 1: Resume or Create Feature
56
-
57
- **Goal:** Have an active feature with a checklist before you start coding.
58
-
59
- ### Resume Existing Feature
60
-
61
- Check if there's a feature to resume from the current git context:
62
-
63
- ```bash
64
- ranger feature resume
65
- ranger feature show
66
- ```
67
-
68
- See [start.md](./start.md) for details on resuming features.
69
-
70
- ### Create New Feature
71
-
72
- If no existing feature, create one with a detailed checklist:
73
-
74
- ```bash
75
- ranger feature create "Feature Name" \
76
- --description "Comprehensive description of what this feature does" \
77
- -c "Detailed item 1" \
78
- -c "Detailed item 2" \
79
- -c "Detailed item 3"
80
- ```
81
-
82
- See [create.md](./create.md) for details on writing good descriptions.
83
-
84
- ---
85
-
86
- # Step 2: Implement in Code
87
-
88
- **Goal:** Write the code for a checklist item.
89
-
90
- This step is your normal coding work - not covered by this skill. Write the implementation for one or more checklist items.
91
-
92
- ---
93
-
94
- # Step 3: Verify in Browser
95
-
96
- **Goal:** Verify each implementation works and capture evidence.
97
-
98
- After implementing, verify in the browser:
99
-
100
- ```bash
101
- ranger verify-feature --task "Detailed description of what to verify"
102
- ```
103
-
104
- The URL is derived from your active environment's `baseUrl` setting. Use `--env` to specify a different environment.
105
-
106
- The verification agent will:
107
- 1. Execute the task in a real browser
108
- 2. Evaluate if the checklist item is satisfied
109
- 3. Mark the item as verified, partial, blocked, or failed
110
- 4. Link the session evidence (trace, screenshots)
111
-
112
- See [verify.md](./verify.md) for details on writing good verification tasks.
113
-
114
- ### Repeat
115
-
116
- Continue the **Implement → Verify** cycle for each checklist item until all are verified.
117
-
118
- ---
119
-
120
- # Step 4: Report
121
-
122
- **Goal:** Generate a completion report with all evidence.
123
-
124
- When all items are verified (feature auto-completes), generate a report:
125
-
126
- ```bash
127
- ranger feature report
128
- ```
129
-
130
- Share the report with the user:
131
-
132
- > Feature complete! All checklist items verified.
133
- > **Report:** [.ranger/reports/feat_abc123.md](.ranger/reports/feat_abc123.md)
134
-
135
- See [report.md](./report.md) for report contents and sharing.
136
-
137
- ---
138
-
139
- # Quick Reference
140
-
141
- | Command | Purpose |
142
- |---------|---------|
143
- | `ranger feature resume` | Find & resume feature by git context |
144
- | `ranger feature show` | Show current feature status |
145
- | `ranger feature create` | Create new feature with checklist |
146
- | `ranger verify-feature` | Verify item in browser |
147
- | `ranger feature report` | Generate completion report |
148
-
149
- # Skill Files
150
-
151
- | File | Covers |
152
- |------|--------|
153
- | [start.md](./start.md) | Resuming features, listing features, git context |
154
- | [create.md](./create.md) | Creating features, writing good descriptions |
155
- | [verify.md](./verify.md) | Browser verification, evaluation results |
156
- | [report.md](./report.md) | Generating and sharing reports |
157
-
158
- # Key Principles
159
-
160
- 1. **Always check for existing features first** - Run `ranger feature resume` at session start
161
- 2. **Be very descriptive** - Detailed descriptions help verification agents evaluate results
162
- 3. **Verify after implementing** - Don't skip browser verification
163
- 4. **Generate reports** - Provide evidence of completion to users
@@ -1,114 +0,0 @@
1
- # Creating a New Feature
2
-
3
- Create a feature when starting new work that doesn't have an existing feature to resume.
4
-
5
- ## Basic Command
6
-
7
- ```bash
8
- ranger feature create "<feature name>" \
9
- --description "<description>" \
10
- -c "<checklist item 1>" \
11
- -c "<checklist item 2>"
12
- ```
13
-
14
- Use multiple `-c` flags for multiple checklist items. Each item can contain commas.
15
-
16
- ## What Gets Captured Automatically
17
-
18
- When you create a feature, the CLI automatically captures:
19
- - **Git repo URL** - From `git remote get-url origin`
20
- - **Git branch** - From current branch name
21
- - **Created timestamp**
22
- - **Your organization** - From API token
23
-
24
- This enables `ranger feature resume` to find features by git context later.
25
-
26
- ## Writing Good Checklist Items
27
-
28
- **OPTIMIZE FOR FAST FEEDBACK: Keep checklists as small as possible.**
29
-
30
- ### Key Principles
31
-
32
- 1. **Prefer 1 checklist item** when possible - this gets you feedback fastest
33
- 2. **Each item should be a full user flow**, not a single UI element
34
- 3. **Only add more items for larger features** that genuinely have multiple distinct flows
35
-
36
- ### What Makes a Good Checklist Item
37
-
38
- Each checklist item should describe the **complete user journey** to verify the feature:
39
-
40
- **Bad - too granular:**
41
- ```
42
- Button appears on page
43
- ```
44
-
45
- **Good - full user flow:**
46
- ```
47
- Navigate to Settings page, see the new Export button, click it, and verify the export dialog opens with CSV and PDF options
48
- ```
49
-
50
- **Bad - broken into too many items:**
51
- ```
52
- 1. Login button exists
53
- 2. Login form appears
54
- 3. Login submits correctly
55
- 4. Redirects to dashboard
56
- ```
57
-
58
- **Good - single flow:**
59
- ```
60
- Go to login page, enter valid credentials, submit, and verify redirect to dashboard with user info displayed
61
- ```
62
-
63
- ### When to Use Multiple Items
64
-
65
- Only split into multiple items when the feature has **genuinely distinct user flows**:
66
-
67
- - Adding a button? **1 item** - navigate, find it, use it, verify result
68
- - Building login + signup? **2 items** - each is a separate flow
69
- - Full CRUD feature? **3-4 items** - create, read, update, delete are distinct
70
-
71
- ## Complete Example
72
-
73
- **Simple feature (1 item):**
74
- ```bash
75
- ranger feature create "Add Export Button" \
76
- --description "Add export functionality to the reports page" \
77
- -c "Navigate to Reports page, click the new Export button, select CSV format, and verify the file downloads"
78
- ```
79
-
80
- **Larger feature (multiple items):**
81
- ```bash
82
- ranger feature create "User Authentication" \
83
- --description "Login and signup flows for the web app" \
84
- -c "Go to login page and sign in with valid credentials, verify redirect to dashboard" \
85
- -c "Go to signup page and create new account, verify welcome email and successful login"
86
- ```
87
-
88
- ## Output
89
-
90
- ```
91
- Creating feature...
92
-
93
- ✅ Feature created: feat_01abc123
94
-
95
- 🔄 User Authentication (feat_01abc123)
96
- Status: in_progress
97
- Description: Login and signup flows...
98
- Repository: github.com/myorg/myapp
99
- Branch: feature/auth
100
- Created: 1/21/2026, 10:30:00 AM
101
-
102
- Checklist:
103
- 1. ⬜ Go to login page and sign in...
104
- 2. ⬜ Go to signup page and create...
105
-
106
- ➡️ Set as active feature
107
- ```
108
-
109
- ## After Creation
110
-
111
- The new feature is automatically set as the active feature. You can now:
112
-
113
- 1. Start implementing the first checklist item
114
- 2. View status with `ranger feature show`
@@ -1,159 +0,0 @@
1
- # Generating Reports
2
-
3
- When a feature is complete (or you need a status update), generate a report with all verification evidence.
4
-
5
- ## Basic Command
6
-
7
- ```bash
8
- ranger feature report
9
- ```
10
-
11
- This creates a markdown file at `.ranger/reports/<feature-id>.md`
12
-
13
- ## Options
14
-
15
- ```bash
16
- # Report for active feature
17
- ranger feature report
18
-
19
- # Report for specific feature
20
- ranger feature report feat_abc123
21
-
22
- # Custom output path
23
- ranger feature report --output ./my-report.md
24
- ```
25
-
26
- ## When to Generate Reports
27
-
28
- 1. **Feature complete** - All items verified, share with stakeholders
29
- 2. **Progress update** - Show what's done and what's remaining
30
- 3. **Blocked status** - Document what's blocking and what evidence exists
31
- 4. **Handoff** - Another developer taking over the feature
32
-
33
- ## Report Contents
34
-
35
- The generated report includes:
36
-
37
- ### Header
38
- - Feature name and ID
39
- - Current status (in_progress, completed, blocked)
40
- - Git context (repo, branch)
41
- - Created/completed dates
42
-
43
- ### Description
44
- - Full feature description
45
-
46
- ### Checklist Progress
47
- - Each item with status emoji
48
- - Verification details (date, session ID)
49
- - Agent summary of what was verified
50
- - Links to Playwright traces
51
- - Blocked/canceled reasons
52
-
53
- ### Blocking Issues
54
- - Summary of any blocked items
55
- - Reasons and context
56
-
57
- ### Verification Sessions
58
- - Table of all browser sessions
59
- - Item, status, duration, date
60
-
61
- ## Example Report
62
-
63
- ```markdown
64
- # Feature Report: User Authentication
65
-
66
- **Status:** ✅ Completed
67
- **Created:** Jan 20, 2026
68
- **Completed:** Jan 21, 2026
69
- **Repository:** github.com/myorg/myapp
70
- **Branch:** feature/auth
71
-
72
- ## Description
73
-
74
- Complete user authentication system including login, signup, and password reset.
75
-
76
- ## Checklist Progress (3/3 verified)
77
-
78
- ### ✅ User can log in with valid credentials
79
-
80
- - **Verified:** Jan 20, 2026
81
- - **Session:** bsess_abc123
82
- - **Summary:** Successfully logged in with test credentials, verified redirect to dashboard
83
- - **Trace:** [View in Playwright](https://trace.playwright.dev/?trace=...)
84
-
85
- ### ✅ User can sign up with new account
86
-
87
- - **Verified:** Jan 21, 2026
88
- - **Session:** bsess_def456
89
- - **Summary:** Created new account, verified welcome email received
90
- - **Trace:** [View in Playwright](https://trace.playwright.dev/?trace=...)
91
-
92
- ### ✅ User can reset password
93
-
94
- - **Verified:** Jan 21, 2026
95
- - **Session:** bsess_ghi789
96
- - **Summary:** Completed password reset flow, verified new password works
97
- - **Trace:** [View in Playwright](https://trace.playwright.dev/?trace=...)
98
-
99
- ## Blocking Issues
100
-
101
- None
102
-
103
- ## All Verification Sessions
104
-
105
- | Session | Item | Status | Duration | Date |
106
- |---------|------|--------|----------|------|
107
- | bsess_abc123 | Login | ✅ completed | 45s | Jan 20, 2026 |
108
- | bsess_def456 | Signup | ✅ completed | 62s | Jan 21, 2026 |
109
- | bsess_ghi789 | Reset | ✅ completed | 38s | Jan 21, 2026 |
110
- ```
111
-
112
- ## Sharing with Users
113
-
114
- After generating a report, share it with the user:
115
-
116
- ```
117
- Feature complete! All 3 checklist items verified.
118
-
119
- **Report:** [.ranger/reports/feat_abc123.md](.ranger/reports/feat_abc123.md)
120
-
121
- Summary:
122
- - ✅ Login flow - working correctly
123
- - ✅ Signup flow - creates account and sends verification email
124
- - ✅ Password reset - full flow working
125
-
126
- Each item has a Playwright trace link for detailed session replay.
127
- ```
128
-
129
- ## Playwright Traces
130
-
131
- Each verification session records a Playwright trace. Click the trace link to:
132
- - See every browser action
133
- - View screenshots at each step
134
- - Inspect network requests
135
- - Debug any issues
136
-
137
- Traces are hosted and accessible via the link in the report.
138
-
139
- ## Partial Reports
140
-
141
- You can generate reports even when a feature isn't complete:
142
-
143
- ```bash
144
- $ ranger feature report
145
-
146
- Generating report...
147
- ✅ Report generated: .ranger/reports/feat_abc123.md
148
- ```
149
-
150
- The report will show:
151
- - Which items are verified
152
- - Which are pending
153
- - Which are blocked (with reasons)
154
- - Progress percentage
155
-
156
- This is useful for:
157
- - Status updates to stakeholders
158
- - Documenting progress before a break
159
- - Showing what's blocking completion
@@ -1,93 +0,0 @@
1
- # Starting a Feature Session
2
-
3
- At the START of any coding session, check if there's an existing feature to resume before creating a new one.
4
-
5
- ## Resume by Git Context
6
-
7
- Features are automatically associated with the git repo and branch when created. Use `resume` to find and activate a matching feature:
8
-
9
- ```bash
10
- ranger feature resume
11
- ```
12
-
13
- This command:
14
- 1. Detects current git repo URL and branch name
15
- 2. Searches for in-progress features matching that context
16
- 3. If found, sets it as the active feature
17
- 4. If multiple matches, prompts you to select one
18
-
19
- ## Check Current Status
20
-
21
- After resuming (or if you already have an active feature):
22
-
23
- ```bash
24
- ranger feature show
25
- ```
26
-
27
- This displays:
28
- - Feature name and ID
29
- - Current status (in_progress, blocked, completed)
30
- - Git context (repo, branch)
31
- - Checklist with item statuses
32
-
33
- ## List Features
34
-
35
- If `resume` doesn't find a match, list all features:
36
-
37
- ```bash
38
- ranger feature list
39
- ```
40
-
41
- Or list features for the current branch specifically:
42
-
43
- ```bash
44
- ranger feature list --current-branch
45
- ```
46
-
47
- ## Set Active Feature Manually
48
-
49
- If you know the feature ID:
50
-
51
- ```bash
52
- ranger feature use feat_abc123
53
- ```
54
-
55
- ## Decision Tree
56
-
57
- ```
58
- Start Session
59
-
60
-
61
- ranger feature resume
62
-
63
- ├── Feature found? ──YES──▶ ranger feature show
64
- │ │
65
- │ ▼
66
- │ Continue working
67
-
68
- └── No match? ──▶ ranger feature list
69
-
70
- ├── Found one? ──▶ ranger feature use <id>
71
-
72
- └── None exist? ──▶ See create.md
73
- ```
74
-
75
- ## Example
76
-
77
- ```bash
78
- # Start of session
79
- $ ranger feature resume
80
-
81
- Searching for features matching: github.com/myorg/myapp / feature/auth...
82
-
83
- ✅ Resumed feature: User Authentication (feat_abc123)
84
-
85
- 🔄 User Authentication (feat_abc123)
86
- Status: in_progress
87
- Branch: feature/auth
88
-
89
- Checklist:
90
- 1. ✅ Login flow works
91
- 2. ⬜ Signup creates account
92
- 3. ⬜ Password reset sends email
93
- ```