therookie 0.4.29 → 0.4.31

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "therookie",
3
- "version": "0.4.29",
3
+ "version": "0.4.31",
4
4
  "description": "the Rookie — the AI new hire that remembers what you teach it. A CLI that connects a personal AI memory to AI tools like Claude and Codex.",
5
5
  "license": "MIT",
6
6
  "keywords": [
package/src/cli.js CHANGED
@@ -111,6 +111,9 @@ const VALUE_FLAGS = new Set([
111
111
  'projectId',
112
112
  'repo-path',
113
113
  'repo-url',
114
+ // spec 2026-09-08 §2.4 — `rookie save --session <id>`. 화이트리스트에 없으면 값이 안 붙어
115
+ // flags.session === true 가 되고 저장 마커가 조용히 안 남는다(실측으로 잡힌 버그).
116
+ 'session',
114
117
  ])
115
118
 
116
119
  export function parseFlags(args) {
@@ -24,6 +24,10 @@ installed_by: __INSTALLED_BY__
24
24
  - **1순위**: `entry_cards[]` 를 직접 읽는다. 비어있지 않으면 **그 작업을 이어가려는 사용자 의도를 우선 가정**해 먼저 언급한다. 안전 신호 — `grade` `warn`/`old` → 이미 완료됐을 수 있으니 현재 상태부터 점검 / `is_meta_card` → 메타 카드 의심·단일 fact 분리 권고·`body` 절단본(전량 단정 금지) / `is_vague` → 목표 수준 카드 — recall 로 방법 보강 후 착수 / `has_contradiction` → 단정 전 점검 / `reasoning` → 근거로 고려.
25
25
  - **activity-stale**: `activity_stale=true`(또는 `newer_activity_count>0`) → 카드 이후 같은 프로젝트에서 세션이 더 진행됐다. `effective_grade`(age·activity 중 높은 등급)를 권위 기준으로, recall + 현재 상태(git log·해당 파일) 점검 후 착수. "이게 마지막 작업" 단정 금지. **단 이 신호는 "카드 이후 활동이 있었다"는 뜻이지 "카드 내용이 틀렸다"는 뜻이 아니다** — 카드를 대체할 내용은 `ephemeral_recovery` 또는 카드 `recorded_at` 보다 최신인 회상 결과로만 확인한다(아래 "진입 카드 = 최신성 기준선").
26
26
  - **`ephemeral_recovery`(임시 복구, 저장 아님)**: activity-stale 카드에 붙는 read-time 합성물. `id` 없음 — `supersedes`·`task_id` 연결 금지. stale 카드와 **함께** 표시("직전 카드(오래됨) + 🛟 임시 복구: <headline>"). `synthesis_tier=bare`=세부 기록 없음으로만, `evidence`="바뀐 것으로 보고됨"(확인 아님). 진짜 다음 카드를 저장하면 다음 조회부터 사라진다.
27
+ - **`is_secondary_track`(다른 트랙)**: 이 카드는 주 카드와 **같은 작업의 신·구가 아니라** 같은
28
+ 프로젝트에서 병행 중인 별개 작업이다. 한 프로젝트에 트랙이 여럿일 때 최신 트랙이 나머지를 덮는
29
+ 것을 막으려고 서버가 골라 붙인다. 두 카드를 신·구로 읽고 한쪽을 폐기하지 않는다 — 어느 쪽을
30
+ 이어갈지 애매하면 두목께 한 줄로 여쭙는다.
27
31
  - **폴백**(구버전 서버): `system_prompt` 의 `## 🔖 진행 중 작업 카드` 마커를 grep(유동 위치 — head/tail 훑기 금지). 텍스트 경로엔 `🔀 세션 N건`·`🛟 임시 복구` 라인으로 동기.
28
32
  - **무-주제 "이어서/계속하자"** 는 `entry_cards`(최신순) 우선. relevance recall 은 특정 주제를 명시했을 때만.
29
33
  - **카드 소비 규칙**: `[고정]`·`[통과]` 자산은 폐기·제외 제안 금지 / `[실패]` 접근은 재제안 금지 / "다음:" 이 목표 수준("~이어가기")뿐이면 목표를 되묻지 말고 방법 1개를 추천안 삼아 착수 보고.
@@ -5,8 +5,12 @@
5
5
  ## 호출 방법
6
6
 
7
7
  ```bash
8
- rookie save --file <body.json> # 또는: echo '<body>' | rookie save
8
+ rookie save --file <body.json> --session <session_id> # 또는: echo '<body>' | rookie save --session <id>
9
9
  ```
10
+
11
+ `--session` 은 **세션 시작 컨텍스트에서 받은 session_id** 다. 저장이 성공하면 로컬 마커를 남겨,
12
+ Stop hook 이 "이 세션은 아무것도 저장하지 않았다"를 판정할 수 있게 한다(spec 2026-09-08 §2.4).
13
+ 빠뜨려도 저장은 정상 동작하지만, **그 세션은 저장 0건으로 오인돼 미추출 큐에 올라간다** — 붙이는 편이 낫다.
10
14
  ⚠️ **`curl` 로 직접 batch-mutate 금지** — `rookie save` 가 cwd·git remote·hostname 을 자동 주입해 전역 누수를 막는다. 본문엔 **기억할 내용만**.
11
15
 
12
16
  ⚠️ **전역 fact 는 `project_id: null` 을 명시한다.** 식별자도 명시 의사도 없으면 서버가 `missing_workspace_context` 로 **거부**. 미등록 폴더 저장은 **그 폴더에 격리**, `rookie link` 시 자동 승격.
package/version.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "cli_version": "0.4.29",
3
- "skill_version": "1.39.0"
2
+ "cli_version": "0.4.31",
3
+ "skill_version": "1.40.0"
4
4
  }