docs(agent-ops): domain rule과 로드맵을 operator reliability refactor에 맞게 갱신한다
API domain에 workerclient proxy와 handler responsibility를 추가하고, worker domain에 backtest engine, storage, provider, socket surface를 명시한다. Client domain에 socket integration과 push integration 경계를 보강한다. Operations domain에 agent-test/local과 bin 명령어를 포함하며, operations domain table에 agent-test/local 경계를 추가한다. 로드맵에 Operator Runtime Reliability Refactor Milestone를 추가하고 현재 활성 Milestone으로 설정하여 Flutter Operator Console 전에 선행할 작업으로 변경한다.
This commit is contained in:
parent
3b1be95e62
commit
c4a457c5c4
8 changed files with 141 additions and 20 deletions
|
|
@ -1,21 +1,22 @@
|
|||
---
|
||||
domain: api
|
||||
last_rule_review_commit: 711dbb9f0c8287d2b52a034684e8e31d38eb6228
|
||||
last_rule_updated_at: 2026-05-28
|
||||
last_rule_review_commit: 3b1be95e625cfd110a42d2ee0d12653dc35f7579
|
||||
last_rule_updated_at: 2026-05-31
|
||||
---
|
||||
|
||||
# api
|
||||
|
||||
## 목적 / 책임
|
||||
|
||||
클라이언트-facing socket API endpoint와 ALT operator-facing control plane을 제공한다. proto-socket server lifecycle, connection setup, heartbeat timing, ALT protobuf parser registration, and API configuration을 이 경계에서 관리한다.
|
||||
클라이언트-facing socket API endpoint와 ALT operator-facing control plane을 제공한다. proto-socket server lifecycle, connection setup, heartbeat timing, ALT protobuf parser registration, API configuration, and worker-facing client proxy lifecycle을 이 경계에서 관리한다.
|
||||
|
||||
## 포함 경로
|
||||
|
||||
- `services/api/cmd/alt-api/` - API service entrypoint
|
||||
- `services/api/internal/config/` - API environment configuration
|
||||
- `services/api/internal/contracts/` - API-local ALT protobuf parser map
|
||||
- `services/api/internal/socket/` - proto-socket server construction
|
||||
- `services/api/internal/socket/` - client-facing proto-socket server, session handlers, worker forwarding
|
||||
- `services/api/internal/workerclient/` - API-owned proto-socket client proxy to worker
|
||||
- `services/api/go.mod` - API module dependencies
|
||||
|
||||
## 제외 경로
|
||||
|
|
@ -30,7 +31,9 @@ last_rule_updated_at: 2026-05-28
|
|||
- `config.Config` - host, port, socket path, heartbeat interval, heartbeat wait
|
||||
- `config.Load` - environment variable parsing with local fallback defaults
|
||||
- `contracts.ParserMap` - parser registration for generated ALT protobuf messages
|
||||
- `socket.NewServer` - proto-socket `WsServer` construction
|
||||
- `socket.NewServer` - proto-socket `WsServer` construction and session handler registration
|
||||
- `socket.marketHandlers`, `socket.backtestHandlers` - request validation and worker forwarding handlers
|
||||
- `workerclient.WorkerClient` - API-side worker request/response proxy
|
||||
- `cmd/alt-api/main.go` - signal handling and service lifecycle
|
||||
|
||||
## 유지할 패턴
|
||||
|
|
@ -39,17 +42,20 @@ last_rule_updated_at: 2026-05-28
|
|||
- Keep process lifecycle in `cmd/alt-api`; keep reusable socket construction under `internal/socket`.
|
||||
- Keep ALT protobuf parser registration under `internal/contracts` and inject it into proto-socket server construction.
|
||||
- Treat proto-socket as the transport abstraction; ALT payload parsing should be derived from contracts.
|
||||
- Keep client-facing command/query handling in API and route long-running execution or worker-owned reads through the worker boundary.
|
||||
- Keep client-facing command/query handling in API thin: validate request shape, map transport failures to typed contract errors, and route long-running execution or worker-owned reads through the worker boundary.
|
||||
- Keep worker connectivity lifecycle observable and injectable enough for tests; avoid spreading worker connection state through unrelated API packages.
|
||||
- Keep `HelloResponse.capabilities` aligned with actually registered API session handlers.
|
||||
|
||||
## 다른 도메인과의 경계
|
||||
|
||||
- **contracts**: API imports generated contract packages and owns API-local parser registration, but contract source stays in `packages/contracts`.
|
||||
- **worker**: API may enqueue or observe worker jobs, but should not run long backtest/import work inline.
|
||||
- **worker**: API may forward commands/queries to worker and surface worker availability, but should not run long backtest/import work inline or own worker storage dependencies.
|
||||
- **client**: API serves client sessions; client UI state and navigation stay in Flutter.
|
||||
|
||||
## 금지 사항
|
||||
|
||||
- Do not add direct Flutter/client assumptions to API internals.
|
||||
- Do not put scheduled job loops or heavy data processing in the API service.
|
||||
- Do not add worker execution engines, PostgreSQL stores, Redis queues, or provider adapters to API internals.
|
||||
- Do not bypass proto-socket for the main client session path without an explicit architecture update.
|
||||
- Do not require Flutter client or any external operator surface to connect directly to worker runtime surfaces.
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
---
|
||||
domain: client
|
||||
last_rule_review_commit: 711dbb9f0c8287d2b52a034684e8e31d38eb6228
|
||||
last_rule_updated_at: 2026-05-28
|
||||
last_rule_review_commit: 3b1be95e625cfd110a42d2ee0d12653dc35f7579
|
||||
last_rule_updated_at: 2026-05-31
|
||||
---
|
||||
|
||||
# client
|
||||
|
||||
## 목적 / 책임
|
||||
|
||||
ALT의 Flutter client surface를 담당한다. web/mobile/desktop targets, application shell, routing, feature presentation, and client-side tests belong here.
|
||||
ALT의 Flutter client surface를 담당한다. web/mobile/desktop targets, application shell, routing, feature presentation, socket integration adapters, optional external push integrations, and client-side tests belong here.
|
||||
|
||||
## 포함 경로
|
||||
|
||||
|
|
@ -18,7 +18,9 @@ ALT의 Flutter client surface를 담당한다. web/mobile/desktop targets, appli
|
|||
- `apps/client/lib/src/features/` - feature presentation code
|
||||
- `apps/client/lib/src/generated/` - generated Dart protobuf outputs consumed by the client
|
||||
- `apps/client/lib/src/integrations/` - client-side external integration adapters
|
||||
- `apps/client/integration_test/` - Flutter integration tests
|
||||
- `apps/client/test/` - Flutter widget/unit tests
|
||||
- `apps/client/test_runtime/` - runtime smoke test helpers
|
||||
- `apps/client/pubspec.yaml` - Flutter package dependencies
|
||||
|
||||
## 제외 경로
|
||||
|
|
@ -36,6 +38,8 @@ ALT의 Flutter client surface를 담당한다. web/mobile/desktop targets, appli
|
|||
- `AltSocketClient` - proto-socket client wrapper for ALT request/response flows
|
||||
- `AltSocketEndpoint` - local/default socket endpoint value object
|
||||
- `SocketConnectionController` - Riverpod connection state controller for socket lifecycle
|
||||
- `MattermostPushHostIntegration` - optional external push integration boundary
|
||||
- `bootstrapAltClient` - app bootstrap and platform integration startup
|
||||
|
||||
## 유지할 패턴
|
||||
|
||||
|
|
@ -46,12 +50,16 @@ ALT의 Flutter client surface를 담당한다. web/mobile/desktop targets, appli
|
|||
- Use Material 3 components and responsive navigation patterns.
|
||||
- Test user-visible app shell behavior through Flutter tests.
|
||||
- Use `services/api` as the only ALT-owned runtime endpoint. Do not connect directly to worker runtime surfaces from client code.
|
||||
- Keep operator shell bootstrapping separable from optional push/Firebase/Mattermost setup so core operator UI can start without external push readiness.
|
||||
- Keep endpoint defaults in `AltSocketEndpoint` or provider/config boundaries; presentation widgets should consume state, not hard-code runtime endpoints.
|
||||
- Keep Mattermost/Firebase/platform-channel behavior under `lib/src/integrations` and out of dashboard presentation widgets.
|
||||
|
||||
## 다른 도메인과의 경계
|
||||
|
||||
- **api**: client connects to API through integration adapters; server lifecycle and server-side socket parsing stay in `services/api`.
|
||||
- **contracts**: client consumes generated/mapped contracts and owns Dart parser helpers; protobuf source stays in `packages/contracts`.
|
||||
- **operations**: `bin/test`, `bin/lint`, and `bin/build` run client checks from the workspace root.
|
||||
- **worker**: client never connects to worker directly; worker state reaches client only through API contracts.
|
||||
|
||||
## 금지 사항
|
||||
|
||||
|
|
@ -60,3 +68,4 @@ ALT의 Flutter client surface를 담당한다. web/mobile/desktop targets, appli
|
|||
- Do not hand-edit generated protobuf Dart outputs.
|
||||
- Do not hard-code production endpoint assumptions in presentation widgets.
|
||||
- Do not add direct worker, database, Redis, or ALT-owned non-API runtime connections to Flutter client code.
|
||||
- Do not make push notification or Mattermost availability a prerequisite for the base operator shell unless a dedicated push Milestone explicitly changes that boundary.
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
---
|
||||
domain: operations
|
||||
last_rule_review_commit: 711dbb9f0c8287d2b52a034684e8e31d38eb6228
|
||||
last_rule_updated_at: 2026-05-28
|
||||
last_rule_review_commit: 3b1be95e625cfd110a42d2ee0d12653dc35f7579
|
||||
last_rule_updated_at: 2026-05-31
|
||||
---
|
||||
|
||||
# operations
|
||||
|
||||
## 목적 / 책임
|
||||
|
||||
로컬 개발, workspace orchestration, operator CLI, and infrastructure entrypoints를 관리한다. 개발자가 반복적으로 쓰는 root-level commands and local services stay discoverable here.
|
||||
로컬 개발, remote verification routing, workspace orchestration, operator CLI, generated output checks, and infrastructure entrypoints를 관리한다. 개발자와 agent가 반복적으로 쓰는 root-level commands, local/remote test rules, and service entrypoints stay discoverable here.
|
||||
|
||||
## 포함 경로
|
||||
|
||||
|
|
@ -17,6 +17,7 @@ last_rule_updated_at: 2026-05-28
|
|||
- `go.work.sum` - Go workspace dependency checksum
|
||||
- `apps/cli/` - Go operator CLI for local/admin workflows
|
||||
- `deployments/local/` - local Docker Compose infrastructure
|
||||
- `agent-test/local/` - local profile test routing that executes on the remote test host
|
||||
- `.gitignore` - repository-level ignore policy
|
||||
|
||||
## 제외 경로
|
||||
|
|
@ -34,25 +35,34 @@ last_rule_updated_at: 2026-05-28
|
|||
- `bin/build` - builds Go binaries and Flutter web
|
||||
- `bin/contracts-gen` - regenerates contract outputs
|
||||
- `bin/contracts-check` - checks generated contract outputs are current
|
||||
- `bin/infra-check` - checks PostgreSQL/Redis availability for the configured environment
|
||||
- `bin/worker-storage-gen` - regenerates worker sqlc outputs
|
||||
- `bin/worker-storage-check` - checks worker sqlc generated output drift
|
||||
- `deployments/local/docker-compose.yml` - PostgreSQL and Redis local stack
|
||||
- `apps/cli/cmd/alt/main.go` - operator CLI scaffold
|
||||
- `agent-test/local/rules.md` - local profile routing with remote host execution policy
|
||||
|
||||
## 유지할 패턴
|
||||
|
||||
- Keep root helper scripts executable, idempotent where practical, and `set -euo pipefail`.
|
||||
- Prefer root `bin/*` commands for whole-workspace workflows.
|
||||
- Keep contract codegen/check scripts under `bin/` and route schema ownership back to `packages/contracts`.
|
||||
- Keep worker storage codegen/check scripts under `bin/` and route schema/query ownership back to `services/worker/internal/storage/postgres`.
|
||||
- Keep local infrastructure defaults aligned with worker/API environment fallback values.
|
||||
- Add new Go modules to `go.work` when they are part of local development.
|
||||
- Treat `agent-test/local` as a local profile whose commands run from the remote ALT checkout; do not imply local shell execution when local testing is forbidden.
|
||||
- Keep root scripts explicit: generated drift checks should fail loudly and tell the user which generation command to run.
|
||||
|
||||
## 다른 도메인과의 경계
|
||||
|
||||
- **api** and **worker**: operations starts, tests, and builds services; service behavior belongs to each service domain.
|
||||
- **client**: operations invokes Flutter commands; UI implementation stays under `apps/client`.
|
||||
- **contracts**: operations may run codegen later; schema design remains in contracts.
|
||||
- **agent-test**: operations owns routing to test profiles, but domain-specific smoke criteria remain in each `agent-test/local/*-smoke.md` document.
|
||||
|
||||
## 금지 사항
|
||||
|
||||
- Do not put application business logic in shell scripts.
|
||||
- Do not commit local secrets or machine-specific state.
|
||||
- Do not make root scripts silently skip failing module checks.
|
||||
- Do not record raw remote paths, tokens, passwords, account numbers, or personal endpoints in tracked test rules or command output.
|
||||
|
|
|
|||
|
|
@ -1,19 +1,32 @@
|
|||
---
|
||||
domain: worker
|
||||
last_rule_review_commit: 711dbb9f0c8287d2b52a034684e8e31d38eb6228
|
||||
last_rule_updated_at: 2026-05-28
|
||||
last_rule_review_commit: 3b1be95e625cfd110a42d2ee0d12653dc35f7579
|
||||
last_rule_updated_at: 2026-05-31
|
||||
---
|
||||
|
||||
# worker
|
||||
|
||||
## 목적 / 책임
|
||||
|
||||
데이터 수집, 정규화, backtest 실행, scheduled jobs처럼 오래 걸리거나 비동기적인 작업의 runtime surface를 담당한다. PostgreSQL과 Redis 연결 정보는 이 경계에서 운영 관점으로 다룬다. worker는 client-facing surface가 아니며 API control plane을 통해 제어된다.
|
||||
데이터 수집, 정규화, backtest 실행, scheduled jobs처럼 오래 걸리거나 비동기적인 작업의 runtime surface를 담당한다. PostgreSQL/Redis integration, worker socket command/query handlers, provider adapters, storage ports, and execution wiring은 이 경계에서 운영 관점으로 다룬다. worker는 client-facing surface가 아니며 API control plane을 통해 제어된다.
|
||||
|
||||
## 포함 경로
|
||||
|
||||
- `services/worker/cmd/alt-worker/` - worker process entrypoint
|
||||
- `services/worker/cmd/alt-worker-data-check/` - credential-free data pipeline smoke command
|
||||
- `services/worker/cmd/alt-worker-migrate/` - PostgreSQL migration command
|
||||
- `services/worker/internal/backtest/` - backtest execution engine
|
||||
- `services/worker/internal/config/` - worker runtime configuration
|
||||
- `services/worker/internal/contracts/` - worker-local ALT protobuf parser map
|
||||
- `services/worker/internal/jobs/` - worker job runner, payloads, and execution starters
|
||||
- `services/worker/internal/marketdata/` - market data import and data-check pipeline
|
||||
- `services/worker/internal/providers/` - external market data provider adapters
|
||||
- `services/worker/internal/rediskeys/` - worker Redis key naming helpers
|
||||
- `services/worker/internal/socket/` - worker proto-socket command/query surface
|
||||
- `services/worker/internal/storage/` - storage ports and PostgreSQL implementation
|
||||
- `services/worker/sqlc.yaml` - worker SQL codegen configuration
|
||||
- `services/worker/testdata/` - secret-free provider fixtures
|
||||
- `services/worker/tools.go` - tool dependency anchors
|
||||
- `services/worker/go.mod` - worker module metadata
|
||||
|
||||
## 제외 경로
|
||||
|
|
@ -26,7 +39,15 @@ last_rule_updated_at: 2026-05-28
|
|||
|
||||
- `config.Config` - database and Redis URLs
|
||||
- `config.Load` - environment variable parsing with local development defaults
|
||||
- `cmd/alt-worker/main.go` - worker process bootstrap
|
||||
- `cmd/alt-worker/main.go` - worker process bootstrap and dependency wiring
|
||||
- `socket.NewServer` - worker proto-socket server construction
|
||||
- `socket.Deps` - socket handler dependency bundle for starter, analysis, result, instrument, and bar stores
|
||||
- `jobs.Runner` - registered job handler dispatcher
|
||||
- `jobs.BacktestStarter` - pending run persistence and asynchronous backtest job launch
|
||||
- `backtest.Engine` - strategy loop and result persistence
|
||||
- `storage.Store` - PostgreSQL-backed market/backtest store
|
||||
- `marketdata/importer.Importer` - provider-to-store daily bar import flow
|
||||
- `providers/kis` - KIS fixture decode and normalization adapter
|
||||
|
||||
## 유지할 패턴
|
||||
|
||||
|
|
@ -34,12 +55,16 @@ last_rule_updated_at: 2026-05-28
|
|||
- Put job orchestration and worker-specific adapters under `services/worker/internal`.
|
||||
- Use `packages/domain` for shared business shapes instead of redefining market/backtest concepts.
|
||||
- Expose worker-owned command/query/event runtime boundaries to `services/api` through proto-socket when crossing process boundaries.
|
||||
- Wire worker execution dependencies in worker entrypoints or worker-internal constructors; API and client must only observe typed availability/errors.
|
||||
- Keep store-backed socket surfaces tolerant of unavailable dependencies by returning typed contract errors instead of panicking.
|
||||
- Keep provider fixtures secret-free and provider-specific raw payload handling inside provider/marketdata adapters.
|
||||
|
||||
## 다른 도메인과의 경계
|
||||
|
||||
- **domain-model**: worker consumes domain-model types; it should not make domain-model depend on worker infrastructure.
|
||||
- **api**: API may request or observe work; worker owns execution.
|
||||
- **operations**: Docker Compose supplies local infrastructure; worker code owns runtime behavior.
|
||||
- **contracts**: worker consumes generated ALT protobuf types in socket/contracts adapters; protobuf source remains in `packages/contracts`.
|
||||
|
||||
## 금지 사항
|
||||
|
||||
|
|
@ -47,3 +72,4 @@ last_rule_updated_at: 2026-05-28
|
|||
- Do not hide required infrastructure in package-level globals.
|
||||
- Do not store generated contract code in the worker module.
|
||||
- Do not expose worker as a direct Flutter/client runtime endpoint.
|
||||
- Do not put provider credentials, account numbers, raw tokens, or personal endpoints in worker fixtures, logs, README, or tracked docs.
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ ALT는 개인 quant system workspace다. Go 서비스와 도구는 루트 `go.wo
|
|||
| `services/api/**` | api | `agent-ops/rules/project/domain/api/rules.md` |
|
||||
| `services/worker/**` | worker | `agent-ops/rules/project/domain/worker/rules.md` |
|
||||
| `apps/client/**` | client | `agent-ops/rules/project/domain/client/rules.md` |
|
||||
| `apps/cli/**`, `bin/**`, `deployments/local/**`, `go.work`, `go.work.sum`, `.gitignore` | operations | `agent-ops/rules/project/domain/operations/rules.md` |
|
||||
| `apps/cli/**`, `bin/**`, `deployments/local/**`, `agent-test/local/**`, `go.work`, `go.work.sum`, `.gitignore` | operations | `agent-ops/rules/project/domain/operations/rules.md` |
|
||||
|
||||
## 검증 명령
|
||||
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@
|
|||
|
||||
## 활성 Milestone
|
||||
|
||||
- [계획] Flutter Operator Console UX Plan
|
||||
- [계획] Operator Runtime Reliability Refactor
|
||||
- Phase: `agent-roadmap/phase/operator-surface/PHASE.md`
|
||||
- 경로: `agent-roadmap/phase/operator-surface/milestones/flutter-operator-console.md`
|
||||
- 경로: `agent-roadmap/phase/operator-surface/milestones/operator-runtime-refactor.md`
|
||||
|
||||
## 선택 규칙
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,9 @@ Flutter client를 ALT의 공식 operator surface로 삼아 market data 상태와
|
|||
- [완료] API-Centered Proto-Socket Rail
|
||||
- 경로: `agent-roadmap/archive/phase/operator-surface/milestones/api-centered-proto-socket-rail.md`
|
||||
- 요약: API 서버를 control plane으로 두고 client-api, api-worker 내부 통신을 proto-socket과 ALT protobuf contracts로 통일한다.
|
||||
- [계획] Operator Runtime Reliability Refactor
|
||||
- 경로: `agent-roadmap/phase/operator-surface/milestones/operator-runtime-refactor.md`
|
||||
- 요약: Flutter operator console/headless validation 전에 API-worker lifecycle, worker execution wiring, capability reporting, client bootstrap, 원격 테스트 룰을 정리한다.
|
||||
- [계획] Flutter Operator Console UX Plan
|
||||
- 경로: `agent-roadmap/phase/operator-surface/milestones/flutter-operator-console.md`
|
||||
- 요약: terminal형 콘솔이 아니라 dashboard/control surface라는 제품 의미를 정하되, 실화면 구현 전 headless 검증 우선 원칙과 wireframe gate를 먼저 정의한다.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,67 @@
|
|||
# Milestone: Operator Runtime Reliability Refactor
|
||||
|
||||
## 위치
|
||||
|
||||
- Roadmap: `agent-roadmap/ROADMAP.md`
|
||||
- Phase: `agent-roadmap/phase/operator-surface/PHASE.md`
|
||||
|
||||
## 목표
|
||||
|
||||
Flutter operator console 작업을 더 진행하기 전에 API-worker runtime rail, worker execution wiring, capability reporting, client bootstrap, and remote test rule 기준을 정리한다. 이 Milestone이 끝나면 후속 UX/headless 작업이 실제 연결 가능한 control surface 위에서 계획될 수 있어야 한다.
|
||||
|
||||
## 상태
|
||||
|
||||
[계획]
|
||||
|
||||
## 구현 잠금
|
||||
|
||||
- 상태: 해제
|
||||
- 결정 필요: 없음
|
||||
|
||||
## 범위
|
||||
|
||||
- API의 worker client lifecycle, injection boundary, reconnect/error reporting 정리
|
||||
- worker의 backtest start/execution wiring 또는 명시적 unavailable 상태 정리
|
||||
- hello capability와 handler registration test를 실제 surface와 일치
|
||||
- `../nexo/agent-test/local/rules.md`의 원격 실행 기준을 참고해 ALT local test profile을 원격 테스트 host 기준으로 정리
|
||||
- Flutter app bootstrap에서 operator shell과 push/Firebase/Mattermost 초기화를 분리
|
||||
- remote verification evidence, generated drift check, skipped integration 조건을 plan/review 루프에서 재현 가능하게 정리
|
||||
|
||||
## 기능
|
||||
|
||||
### Epic: [runtime-refactor] Operator runtime reliability refactor
|
||||
|
||||
Operator console과 headless validation이 의존할 API-worker-client rail을 scaffold 상태에서 실행 가능한 운영 경계로 끌어올린다.
|
||||
|
||||
- [ ] [worker-exec] `services/worker` main에서 `BacktestStarter`, concrete `KindRunBacktest` handler, engine/store dependency를 연결하거나, 아직 실행 불가인 부분은 capability와 typed error로 명시한다.
|
||||
- [ ] [api-worker-lifecycle] `services/api`의 worker client 전역 상태와 one-shot connect 흐름을 주입 가능한 lifecycle로 정리하고, connect failure, timeout, disconnect behavior를 테스트한다.
|
||||
- [x] [test-rules] `agent-test/local` 규칙을 `../nexo/agent-test/local/rules.md`의 원격 실행 방식에 맞춰 `ssh toki@toki-labs.com` 기준으로 정리하고, ALT smoke profile이 local shell 실행을 암시하지 않게 한다.
|
||||
- [ ] [capabilities] API/worker `HelloResponse.capabilities`와 handler coverage test가 market/backtest/worker availability를 실제 등록 surface와 일치하게 검증한다.
|
||||
- [ ] [client-bootstrap] Flutter operator shell이 push/Firebase/Mattermost 초기화 없이도 시작 가능한 경계로 분리되고, push-specific integration은 후속 push Milestone 범위로 남는다.
|
||||
- [ ] [verification-handoff] 원격 ALT checkout에서 실행할 검증 명령, `bin/contracts-check`, `bin/worker-storage-check`, 통합 테스트 skip 조건과 실제 stdout/stderr 기록 기준을 plan/review 산출물에 남길 수 있게 정리한다.
|
||||
|
||||
## 완료 리뷰
|
||||
|
||||
- 상태: 없음
|
||||
- 요청일: 없음
|
||||
- 완료 근거: `test-rules`는 Milestone 생성 시점에 반영했다. runtime/client refactor 기능 Task는 아직 충족되지 않았다.
|
||||
- 리뷰 필요:
|
||||
- [ ] 사용자가 완료 결과를 확인했다
|
||||
- [ ] archive 이동을 승인했다
|
||||
- 리뷰 코멘트: 없음
|
||||
|
||||
## 범위 제외
|
||||
|
||||
- Flutter production 화면, dashboard layout, chart/form wireframe 확정
|
||||
- KIS live credential, provider live smoke, trading/order execution
|
||||
- push notification 구현 자체
|
||||
- 신규 strategy catalog 또는 고급 backtest 분석 기능
|
||||
|
||||
## 작업 컨텍스트
|
||||
|
||||
- 관련 경로: `services/api/`, `services/worker/`, `apps/client/`, `agent-test/local/`, `bin/`
|
||||
- 표준선(선택): API는 thin control plane으로 유지하고 worker execution/storage는 worker에 둔다. 로컬 테스트 profile의 명령은 로컬 shell이 아니라 원격 테스트 host의 ALT checkout에서 실행한다. Client operator shell은 push integration 없이도 기본 실행 가능해야 한다.
|
||||
- 초기 반영: 2026-05-31에 `../nexo/agent-test/local/rules.md`를 참고해 `agent-test/local/rules.md`와 smoke profile의 host/blocker 문구를 원격 테스트 host 기준으로 갱신했다.
|
||||
- 선행 작업: API-Centered Proto-Socket Rail
|
||||
- 후속 작업: Flutter Operator Console UX Plan, Operator Headless Workflow Validation, Flutter Operator Console MVP
|
||||
- 확인 필요: 없음
|
||||
Loading…
Reference in a new issue