@rigour-labs/cli 6.9.0-rc.2 → 6.9.0-rc.3
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.
|
@@ -33,6 +33,11 @@ export interface LessonJourney {
|
|
|
33
33
|
pr: number;
|
|
34
34
|
at: string;
|
|
35
35
|
};
|
|
36
|
+
/** Back to a candidate when outcomes stopped promoting: why, and the evidence that had promoted it, for a person to promote again or dismiss. */
|
|
37
|
+
reclassified?: {
|
|
38
|
+
detail: string;
|
|
39
|
+
evidence: string[];
|
|
40
|
+
};
|
|
36
41
|
}
|
|
37
42
|
export interface StudioLearning {
|
|
38
43
|
lessons: LessonJourney[];
|
|
@@ -51,7 +51,8 @@ export function buildLearning(input) {
|
|
|
51
51
|
reachedPr: null,
|
|
52
52
|
...decisionFor(l),
|
|
53
53
|
})),
|
|
54
|
-
|
|
54
|
+
// Lessons back to a candidate when outcomes stopped promoting come first: a person decides each once.
|
|
55
|
+
].sort((a, b) => Number(!!b.reclassified) - Number(!!a.reclassified) || b.learnedAt.localeCompare(a.learnedAt))
|
|
55
56
|
// The same lesson learned in several places (this repo and personal lessons from others) shows once.
|
|
56
57
|
.filter((lesson, i, all) => all.findIndex(other => other.text === lesson.text) === i);
|
|
57
58
|
const count = input.weeks ?? WEEKS;
|
|
@@ -73,12 +74,15 @@ function learnedFromPoints(points) {
|
|
|
73
74
|
}
|
|
74
75
|
/**
|
|
75
76
|
* What a person can decide on a review lesson, from the last of its evidence and decisions: taken back by evidence
|
|
76
|
-
* (promote it again, or drop it),
|
|
77
|
+
* (promote it again, or drop it), back to a candidate when outcomes stopped promoting (promote it again, or dismiss),
|
|
78
|
+
* or a candidate with a later fix on its lines (promote it, or dismiss the evidence).
|
|
77
79
|
*/
|
|
78
80
|
function decisionFor(lesson) {
|
|
79
81
|
if (lesson.state !== 'candidate')
|
|
80
82
|
return { canDecide: false };
|
|
81
|
-
const last = lesson.evidence.filter(e => e.kind === 'demoted' || e.kind === 'lines' || e.kind === 'accepted' || e.kind === 'rejected' || e.kind === 'dismissed').at(-1);
|
|
83
|
+
const last = lesson.evidence.filter(e => e.kind === 'demoted' || e.kind === 'lines' || e.kind === 'reclassified' || e.kind === 'accepted' || e.kind === 'rejected' || e.kind === 'dismissed').at(-1);
|
|
84
|
+
if (last?.kind === 'reclassified')
|
|
85
|
+
return { canDecide: true, reclassified: { detail: last.detail ?? '', evidence: lesson.evidence.filter(e => e.kind === 'outcome' || e.kind === 'lines').map(e => e.detail ?? '').filter(Boolean) } };
|
|
82
86
|
if (last?.kind === 'demoted')
|
|
83
87
|
return { canDecide: true, takenBack: { detail: last.detail ?? '', prs: lesson.evidence.filter(e => e.kind === 'against').map(e => e.pr), at: last.at ?? '' } };
|
|
84
88
|
if (last?.kind === 'lines')
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rigour-labs/cli",
|
|
3
|
-
"version": "6.9.0-rc.
|
|
3
|
+
"version": "6.9.0-rc.3",
|
|
4
4
|
"description": "Code review that happens while your agent writes: deterministic checks on the lines it changed, quiet unless it can prove a defect, and learning from your team's fixes and dismissals. Works with Claude Code, Cursor, Codex, Cline and Windsurf.",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=22.13"
|
|
@@ -59,13 +59,13 @@
|
|
|
59
59
|
"inquirer": "9.2.16",
|
|
60
60
|
"ora": "^8.0.1",
|
|
61
61
|
"yaml": "^2.8.2",
|
|
62
|
-
"@rigour-labs/core": "6.9.0-rc.
|
|
62
|
+
"@rigour-labs/core": "6.9.0-rc.3"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@types/fs-extra": "^11.0.4",
|
|
66
66
|
"@types/inquirer": "9.0.7",
|
|
67
67
|
"@types/node": "^25.0.3",
|
|
68
|
-
"@rigour-labs/studio": "6.9.0-rc.
|
|
68
|
+
"@rigour-labs/studio": "6.9.0-rc.3"
|
|
69
69
|
},
|
|
70
70
|
"scripts": {
|
|
71
71
|
"build": "tsc && pnpm bundle-studio",
|