therookie 0.4.17 → 0.4.19
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
|
@@ -20,7 +20,7 @@ rookie save --file <body.json> # 또는: echo '<body>' | rookie save
|
|
|
20
20
|
```json
|
|
21
21
|
{
|
|
22
22
|
"working_cards": { "items": [ { "summary": "진입 카드 본문", "verification": { "method": "ssh|curl|git|grep|lsof|read|reasoning|assertion", "evidence": "직접 명령 결과 한 줄" }, "supersedes": ["부모 fact UUID"], "tags": ["custom"], "ttl_at": "ISO8601?", "artifact_paths": ["task 매칭용? ≤20 (저장 안 함)"], "project_id": "?", "task_id": "?" } ], "repo_url": "(권장) git remote — 없으면 project 귀속 안 됨", "repo_path": "(권장) repo_url 없을 때 hostname 매칭", "project_id": "(레거시) item 이 우선, 보통 생략", "conversation_id": "uuid?" },
|
|
23
|
-
"self_rules": [ { "category": "identity|voice|work_style|strength|preference|rule", "rule": "규칙 본문", "confidence": "high|medium|low", "supersedes": "기존 rule UUID?", "deprecation_reason": "user_override|conflict|noise|manual?" } ],
|
|
23
|
+
"self_rules": [ { "category": "identity|voice|work_style|strength|preference|rule", "rule": "규칙 본문", "confidence": "high|medium|low", "supersedes": "기존 rule UUID?", "deprecation_reason": "user_override|conflict|noise|manual?", "ownership_scope": "personal|project?", "project_id": "scope=project 일 때 필수 uuid" } ],
|
|
24
24
|
"evidence": [ { "capability": "능력 진술문", "approach": "접근법?", "status": "completed|in-progress?", "context": "맥락?", "artifact_paths": ["파일 절대경로 (project 폴백 매칭에도 쓰임)"], "project_id": "? (uuid=명시 귀속 / null=전역 / 생략=세션 귀속)" } ],
|
|
25
25
|
"supersede_links": [ { "parent_id": "폐기할 구 카드 UUID", "child_id": "대체하는 새 카드 UUID" } ],
|
|
26
26
|
"verifications": [ { "fact_id": "검증 대상 fact UUID", "method": "(위와 동일 enum)", "outcome": "confirmed|refuted|ambiguous", "evidence": "검증 명령 결과 한 줄" } ]
|
|
@@ -46,7 +46,13 @@ top-level `all_committed` 가 **`true` 일 때만** `[기억] … 저장` 보고
|
|
|
46
46
|
- **cross-project·전역 예외**: 명백히 다른 프로젝트/전역 fact 는 **생략이 아니라 명시적으로 `project_id: null`**(전역) 또는 그 프로젝트 uuid — 생략은 세션 project 자동 귀속(오귀속). null 도 scope=all 회상에 잡힌다.
|
|
47
47
|
- **task 연결**: 확실히 매칭된 task 면 `task_id` 지정 — done 시 카드 자동 은퇴. project_id 는 생략해 task 에서 derive(불일치 시 400). **애매하면** task_id 없이 `__task_link_candidate:<task_id>` 태그만.
|
|
48
48
|
- **durable 사실 분리 저장 (필수)**: 진입 카드·checkpoint 본문에 durable 운영 사실(블로커 발생/해소·환경 변화·외부 상태 전환·측정 결과)을 끼워 넣지 않는다 — **별도 working_cards item 으로 분리 저장**하고 진입 카드엔 요지만. 판별: "다음 checkpoint 가 이 카드를 닫아도 여전히 참이어야 하는 내용인가" → 그렇다면 분리. (진입 카드는 ephemeral pointer 라 체인 supersede 로 닫힌다 — 본문에만 있던 durable 사실이 회상 불가로 소실된 실사고 있음.)
|
|
49
|
-
- **self_rules**: 사용자 명시 자기 규칙 지시 시만.
|
|
49
|
+
- **self_rules**: 사용자 명시 자기 규칙 지시 시만.
|
|
50
|
+
- **범위를 반드시 판단한다 (필수)**: 규칙 본문이 **특정 프로젝트·앱·환경에서만 뜻이 통하면** `ownership_scope:"project"` + `project_id`(세션 시작 context 응답의 `current_project.id`)를 단다. 판별 한 문장 — **"다른 프로젝트 세션에서도 이 규칙이 필요한가."** 필요하면 전역(생략=personal), 아니면 project.
|
|
51
|
+
- project 예: 특정 앱의 빌드·배포 절차, 그 제품의 콘텐츠 선정 기준, 그 저장소의 파일 구조 규약, 특정 기기·계정에서만 쓰는 명령
|
|
52
|
+
- personal 예: 말투·문장 작법, 보고 형식, 검증 습관, 위험 명령 확인 절차 — 어느 프로젝트에서든 적용되는 것
|
|
53
|
+
- **애매하면 personal(생략)** — 안전한 기본값이다. 잘못 좁히면 **필요한 순간에 안 뜨는 규칙**이 되고, 그건 전역으로 남는 것보다 알아채기 어렵다.
|
|
54
|
+
- 왜 필요한가: 규칙은 카테고리당 소수만 세션에 주입된다. 범위를 안 달면 **다른 프로젝트 전용 규칙이 그 자리를 차지한다** — 2026-08-24 실측에서 work_style 50%·rule 52% 가 특정 프로젝트 전용인데 전부 전역으로 저장돼 있었다.
|
|
55
|
+
- **evidence**: 파일·결과물 산출 시. / **verifications**: 루키가 직접 명령으로 fact 검증 시.
|
|
50
56
|
|
|
51
57
|
## 파일 변경 알림
|
|
52
58
|
|
package/version.json
CHANGED