@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.
- package/README.md +57 -131
- package/build/cli.js +60 -62
- package/build/cli.js.map +1 -1
- package/build/commands/addEnv.js +1 -1
- package/build/commands/addEnv.js.map +1 -1
- package/build/commands/clean.js +1 -1
- package/build/commands/clean.js.map +1 -1
- package/build/commands/dataMcpServer.js +1 -1
- package/build/commands/feature.js +91 -34
- package/build/commands/feature.js.map +1 -1
- package/build/commands/hook.js +27 -0
- package/build/commands/hook.js.map +1 -0
- package/build/commands/hooks/disable.js +25 -0
- package/build/commands/hooks/disable.js.map +1 -0
- package/build/commands/hooks/enable.js +44 -0
- package/build/commands/hooks/enable.js.map +1 -0
- package/build/commands/hooks/exitPlanMode.js +35 -0
- package/build/commands/hooks/exitPlanMode.js.map +1 -0
- package/build/commands/hooks/index.js +10 -0
- package/build/commands/hooks/index.js.map +1 -0
- package/build/commands/hooks/output.js +53 -0
- package/build/commands/hooks/output.js.map +1 -0
- package/build/commands/hooks/planReminder.js +46 -0
- package/build/commands/hooks/planReminder.js.map +1 -0
- package/build/commands/hooks/planStart.js +30 -0
- package/build/commands/hooks/planStart.js.map +1 -0
- package/build/commands/hooks/postEdit.js +41 -0
- package/build/commands/hooks/postEdit.js.map +1 -0
- package/build/commands/hooks/preCompact.js +30 -0
- package/build/commands/hooks/preCompact.js.map +1 -0
- package/build/commands/hooks/sessionStart.js +35 -0
- package/build/commands/hooks/sessionStart.js.map +1 -0
- package/build/commands/hooks/stopHook.js +54 -0
- package/build/commands/hooks/stopHook.js.map +1 -0
- package/build/commands/index.js +1 -3
- package/build/commands/index.js.map +1 -1
- package/build/commands/skillup.js +36 -69
- package/build/commands/skillup.js.map +1 -1
- package/build/commands/start.js +1 -1
- package/build/commands/start.js.map +1 -1
- package/build/commands/status.js +17 -21
- package/build/commands/status.js.map +1 -1
- package/build/commands/updateEnv.js +1 -1
- package/build/commands/updateEnv.js.map +1 -1
- package/build/commands/useEnv.js +1 -1
- package/build/commands/utils/browserSessionsApi.js +1 -1
- package/build/commands/utils/claudePlugin.js +85 -0
- package/build/commands/utils/claudePlugin.js.map +1 -0
- package/build/commands/utils/cliSecret.js +1 -1
- package/build/commands/utils/featureApi.js +23 -0
- package/build/commands/utils/featureApi.js.map +1 -1
- package/build/commands/utils/git.js +44 -0
- package/build/commands/utils/git.js.map +1 -0
- package/build/commands/utils/keychain.js +1 -1
- package/build/commands/utils/localAgentInstallationsApi.js +1 -1
- package/build/commands/utils/sessionCache.js +133 -0
- package/build/commands/utils/sessionCache.js.map +1 -0
- package/build/commands/utils/skillContent.js +3 -3
- package/build/commands/utils/skillContent.js.map +1 -1
- package/build/commands/utils/skills.js +1 -1
- package/build/commands/utils/skills.js.map +1 -1
- package/build/commands/verifyFeature.js +22 -2
- package/build/commands/verifyFeature.js.map +1 -1
- package/build/commands/verifyInBrowser.js +1 -1
- package/build/skills/ranger/SKILL.md +164 -0
- package/build/skills/ranger/create.md +151 -0
- package/build/skills/ranger/start.md +122 -0
- package/build/skills/{feature-tracker → ranger}/verify.md +33 -3
- package/package.json +1 -1
- package/build/commands/postEditHook.js +0 -25
- package/build/commands/postEditHook.js.map +0 -1
- package/build/commands/preCompactHook.js +0 -85
- package/build/commands/preCompactHook.js.map +0 -1
- package/build/commands/sessionStartHook.js +0 -64
- package/build/commands/sessionStartHook.js.map +0 -1
- package/build/commands/utils/mcpConfig.js +0 -1
- package/build/commands/utils/mcpConfig.js.map +0 -1
- package/build/skills/feature-tracker/SKILL.md +0 -163
- package/build/skills/feature-tracker/create.md +0 -114
- package/build/skills/feature-tracker/report.md +0 -159
- 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
|
-
```
|