chore: update project rules, roadmap, and documentation
This commit is contained in:
parent
591243062d
commit
79c9747d88
6 changed files with 19 additions and 12 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -38,3 +38,7 @@ Pods/
|
|||
|
||||
# Agent-Ops Private Rules
|
||||
agent-ops/rules/private/
|
||||
|
||||
# Agent-Test Local Environment
|
||||
agent-test/local/
|
||||
agent-test/runs/
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
domain: workspace-ops
|
||||
last_rule_review_commit: e3b5dae725db62dd7a47c563abcce557e0557551
|
||||
last_rule_updated_at: 2026-05-21
|
||||
last_rule_review_commit: bf8eed5b45752c2a62c038819878dce92220bda2
|
||||
last_rule_updated_at: 2026-05-30
|
||||
---
|
||||
|
||||
# workspace-ops
|
||||
|
|
@ -22,6 +22,7 @@ NomadCode 원레포 운영 도메인이다. 루트 helper, 문서, ignore 정책
|
|||
- `agent-ops/bin/` — agent-ops 초기화, sync, entry file helper.
|
||||
- `agent-ops/rules/project/` — project/domain rules.
|
||||
- `agent-roadmap/` — project roadmap, current milestone pointer, milestone documents.
|
||||
- `agent-test/` — local-only test rules and run artifacts.
|
||||
|
||||
## 제외 경로
|
||||
|
||||
|
|
@ -37,6 +38,7 @@ NomadCode 원레포 운영 도메인이다. 루트 helper, 문서, ignore 정책
|
|||
- `bin/dev` — development entrypoint 안내.
|
||||
- `docs/monorepo.md` — monorepo layout 설명.
|
||||
- `AGENTS.md`, `CLAUDE.md`, `GEMINI.md` — agent별 루트 진입 규칙.
|
||||
- `agent-test/local/rules.md` — local 테스트 환경 routing과 private input 사용 경계.
|
||||
- `agent-ops/rules/project/rules.md` — 프로젝트 전체 agent routing.
|
||||
- `agent-roadmap/ROADMAP.md` — 전체 Phase와 Milestone index.
|
||||
- `agent-roadmap/current.md` — 현재 Phase와 기본 Milestone pointer.
|
||||
|
|
@ -47,7 +49,7 @@ NomadCode 원레포 운영 도메인이다. 루트 helper, 문서, ignore 정책
|
|||
- root helper는 누락된 도구를 친절하게 skip하거나 명확히 실패한다.
|
||||
- 공통 agent-ops 영역과 프로젝트 특화 영역을 섞지 않는다.
|
||||
- roadmap은 `agent-roadmap/`에 두고, 서비스별 README에 Phase 계획을 중복 유지하지 않는다.
|
||||
- `.gitignore`에는 private rules만 제외하고, `agent-task/archive/**`는 AI ignore/permission 파일에서 제어한다.
|
||||
- `.gitignore`에는 private rules와 local-only `agent-test/local/`, `agent-test/runs/`만 제외하고, `agent-task/archive/**`는 AI ignore/permission 파일에서 제어한다.
|
||||
- 원레포 구조 변경은 README와 docs를 함께 갱신한다.
|
||||
|
||||
## 다른 도메인과의 경계
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ NomadCode는 AI 병렬 작업 운용을 위한 원레포다. 백엔드 오케스
|
|||
- `bin/` — 원레포 공통 test/build/lint/dev entrypoint.
|
||||
- `docs/` — 아키텍처와 운영 문서.
|
||||
- `agent-ops/` — 에이전트 공통 규칙, project/domain rules, roadmap, 반복 작업 skill.
|
||||
- `agent-test/` — local 테스트 rules와 실행 산출물.
|
||||
|
||||
## 기술 스택
|
||||
|
||||
|
|
@ -41,7 +42,7 @@ NomadCode는 AI 병렬 작업 운용을 위한 원레포다. 백엔드 오케스
|
|||
| `services/core/**` | core | `agent-ops/rules/project/domain/core/rules.md` |
|
||||
| `apps/client/**` | mobile | `agent-ops/rules/project/domain/mobile/rules.md` |
|
||||
| `packages/contracts/**` | contracts | `agent-ops/rules/project/domain/contracts/rules.md` |
|
||||
| `bin/**`, `docs/**`, `README.md`, `.gitignore`, `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, `opencode.json`, `agent-ops/.version`, `agent-ops/bin/**`, `agent-roadmap/**`, `agent-ops/rules/project/**` | workspace-ops | `agent-ops/rules/project/domain/workspace-ops/rules.md` |
|
||||
| `bin/**`, `docs/**`, `README.md`, `.gitignore`, `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, `opencode.json`, `agent-ops/.version`, `agent-ops/bin/**`, `agent-roadmap/**`, `agent-test/**`, `agent-ops/rules/project/**` | workspace-ops | `agent-ops/rules/project/domain/workspace-ops/rules.md` |
|
||||
|
||||
## 스킬 라우팅
|
||||
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ Work Item Provider Pipeline Design과 workflow core 이후 남은 Plane/Jira 확
|
|||
- 선행 작업: Work Item Provider Pipeline Design, Workflow Core, Mattermost Nexo Messaging Alignment
|
||||
- 후속 작업: Project Workspace Management UX
|
||||
- Mattermost signed push smoke 재현 가이드: `docs/test-environments.md#mattermost-server-generated-push-smoke`
|
||||
- private 환경값 router: `agent-ops/rules/private/rules.md` (ignored local file)
|
||||
- private 환경값 router: `agent-test/local/mattermost-server-generated-push-smoke.md` (ignored local file)
|
||||
- Mattermost 책임 경계: core는 Mattermost REST 메시지 발송과 task notification 발행을 담당하고, `../nexo/packages/messaging_flutter`는 client-side FCM 수신, signature 검증, ACK, notification display, opened-routing, inline reply, dismiss를 담당한다.
|
||||
- Nexo host 정합성: NomadCode host는 Firebase 설정, Mattermost credential handoff, signing key, optional server identifier, navigation callback만 `MattermostPushClient` 경계로 전달한다. native push 처리 로직은 `apps/client/android`에 복제하지 않는다.
|
||||
- 선행 순서: Mattermost 메시지/알림 경계 정합성은 `agent-roadmap/phase/external-integration/milestones/mattermost-nexo-messaging-alignment.md`에서 먼저 닫고, 이후 `[mattermost-adapter]`는 core의 Mattermost REST 메시지 발송 구현에 집중한다.
|
||||
|
|
|
|||
|
|
@ -59,4 +59,4 @@
|
|||
- 표준선(선택): `../nexo/packages/messaging_flutter`는 Android-first client-side messaging/notification SDK이고, NomadCode host는 Firebase 설정, credential handoff, signing key, optional server identifier, navigation callback만 전달한다.
|
||||
- 선행 작업: Mattermost Messaging Android Smoke
|
||||
- 후속 작업: Workflow Core 재개, External Integration의 `[mattermost-adapter]` 구현
|
||||
- 확인 필요: signed push smoke 재실행 시 private input은 `agent-ops/rules/private/rules.md`가 라우팅하는 ignored secret 파일에서만 읽는다.
|
||||
- 확인 필요: signed push smoke 재실행 시 private input은 `agent-test/local/rules.md`와 `agent-test/local/mattermost-server-generated-push-smoke.md`가 라우팅하는 ignored secret 파일에서만 읽는다.
|
||||
|
|
|
|||
|
|
@ -73,15 +73,15 @@ The current matching roadmap target is:
|
|||
|
||||
### Private Inputs
|
||||
|
||||
Before running this smoke, read `agent-ops/rules/private/rules.md` and use the local-only secret file referenced there. Do not print or commit raw bot tokens, passwords, FCM tokens, signing keys, or push signatures.
|
||||
Before running this smoke, read `agent-test/local/rules.md` and the routed local Mattermost smoke rule. Use the local-only secret file referenced there. Do not print or commit raw bot tokens, passwords, FCM tokens, signing keys, or push signatures.
|
||||
|
||||
Create the ignored credential asset used by `apps/client`:
|
||||
|
||||
```json
|
||||
{
|
||||
"serverUrl": "<mattermost-base-url-from-private-rules>",
|
||||
"loginId": "<receiver-test-account-email-from-private-rules>",
|
||||
"password": "<receiver-test-account-password-from-private-rules>"
|
||||
"serverUrl": "<mattermost-base-url-from-local-test-secrets>",
|
||||
"loginId": "<receiver-test-account-email-from-local-test-secrets>",
|
||||
"password": "<receiver-test-account-password-from-local-test-secrets>"
|
||||
}
|
||||
```
|
||||
|
||||
|
|
@ -145,7 +145,7 @@ If login or signing-key storage is skipped, fix the ignored credential asset or
|
|||
|
||||
### Trigger Signed Push
|
||||
|
||||
Use the bot token from private rules to send a normal Mattermost DM or mention to the receiver test account through the Mattermost REST API. The important property is that the message is created by the server, then delivered through push-proxy to FCM; do not use a hand-built placeholder signature as the positive test.
|
||||
Use the bot token from local test secrets to send a normal Mattermost DM or mention to the receiver test account through the Mattermost REST API. The important property is that the message is created by the server, then delivered through push-proxy to FCM; do not use a hand-built placeholder signature as the positive test.
|
||||
|
||||
The generic API flow is:
|
||||
|
||||
|
|
@ -166,7 +166,7 @@ POST /api/v4/posts
|
|||
All calls use:
|
||||
|
||||
```text
|
||||
Authorization: Bearer <bot-access-token-from-private-rules>
|
||||
Authorization: Bearer <bot-access-token-from-local-test-secrets>
|
||||
```
|
||||
|
||||
### Expected Evidence
|
||||
|
|
|
|||
Loading…
Reference in a new issue