@aopslabs/aops 0.3.4 → 0.3.5

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.
Files changed (38) hide show
  1. package/README.md +4 -3
  2. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/SKILL.md +49 -0
  3. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/agentspace/SKILL.md +78 -0
  4. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/aops-cli-core/SKILL.md +110 -0
  5. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/chatv3/SKILL.md +49 -0
  6. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/collaborative-work/SKILL.md +85 -0
  7. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/discuss/SKILL.md +66 -0
  8. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/docman/SKILL.md +69 -0
  9. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/hosted-chat/SKILL.md +64 -0
  10. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/mission/SKILL.md +54 -0
  11. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/projectman/SKILL.md +86 -0
  12. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/sys/SKILL.md +36 -0
  13. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/view/SKILL.md +58 -0
  14. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/working-disciplines/SKILL.md +69 -0
  15. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/agent-assets.md +81 -0
  16. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/agentspace.md +1098 -0
  17. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/aops-cli.md +1106 -0
  18. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/aops-system.md +63 -0
  19. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/chatv3.md +113 -0
  20. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/docman.md +162 -0
  21. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/projectman.md +212 -0
  22. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/sys.md +94 -0
  23. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/working-disciplines.md +588 -0
  24. package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/manifest.json +127 -0
  25. package/agent-assets-release/agent-assets/gateway/aops/SKILL.md +14 -0
  26. package/agent-assets-release/agent-assets/inventory.json +29 -0
  27. package/agent-assets-release/agent-assets/projection.json +8 -0
  28. package/agent-assets-release/agent-assets-release.json +181 -0
  29. package/agent-assets-release/agent-assets-release.sigstore.json +62 -0
  30. package/dist/lib/agent-assets/envelope.js +2 -0
  31. package/dist/lib/agent-assets/release-input.js +14 -2
  32. package/dist/lib/community-release-verifier.js +3 -2
  33. package/dist/lib/setup-agent-assets-release.js +8 -2
  34. package/dist/lib/setup-docker-server.js +2 -2
  35. package/dist/lib/tui-launcher.js +1 -0
  36. package/native/tui/darwin-arm64/aops-tui +0 -0
  37. package/native/tui/win32-x64/aops-tui.exe +0 -0
  38. package/package.json +4 -4
@@ -0,0 +1,63 @@
1
+ # AOPS Community system guide
2
+
3
+ AOPS consists of a server, a CLI, independent domain capabilities, and optional monitoring surfaces.
4
+
5
+ - `aops-server` hosts the installed domains and is canonical for their records.
6
+ - the `aops` CLI provides setup, target/auth configuration, domain sugar, generic discovery/invoke, and local client-asset lifecycle commands.
7
+ - Domain plugins own their semantics and operation schemas.
8
+ - Cockpit applications are optional presentation and monitoring surfaces.
9
+
10
+ The server and CLI need not be on the same computer. A local client selects a target and keeps credentials in its user-level configuration. Repository `.aops` content binds a project and caches derived views; it does not replace hosted records or the verified user-level agent-assets store.
11
+
12
+ ## Installation boundary
13
+
14
+ `aops setup init` is the setup authority. It can use an operator-supplied
15
+ PostgreSQL URL, manage only an AOPS-owned Docker PostgreSQL, or create a
16
+ dedicated AOPS role/database in loopback PostgreSQL already installed on the
17
+ computer. All server paths use the same migration verification. PostgreSQL
18
+ administrator credentials for local provisioning are transient and never
19
+ stored; the application connection is kept in the private user server-env.
20
+ Use `aops setup guide` for the small installation skill and live
21
+ `aops setup init --help` for exact flags.
22
+
23
+ Successful default setup also installs or repairs the signed global AOPS
24
+ gateway for every registered agent runtime. Its offline core provides a
25
+ token-efficient router plus rich, on-demand guides for the mounted Community
26
+ domains and available working disciplines. A discipline is never selected or
27
+ activated automatically.
28
+
29
+ After local setup, invoking `aops` without arguments shows the operator home
30
+ without starting or stopping either local service. Use the separate Server and
31
+ Cockpit controls when you want to change their process state.
32
+
33
+ The installed CLI also ships direct `.sh` and `.ps1` launchers. The server
34
+ launcher runs the normal installed lifecycle in the current terminal with live
35
+ logs and Ctrl+C cleanup. The Cockpit launcher starts only its independent
36
+ background process. Both call package-relative Node entrypoints and never
37
+ carry database secrets in the script or argv.
38
+
39
+ ## Capability discovery
40
+
41
+ Start with the relevant CLI family help. When a server has custom or newer domains, query its live catalog:
42
+
43
+ ```text
44
+ aops agent tools --summary --json
45
+ aops agent tools --domain <domain> --q <intent> --limit 5 --summary --json
46
+ aops agent schema --tool <domain.operation> --summary
47
+ ```
48
+
49
+ Sugar `--help` is authoritative for CLI flags. Live tool schema is authoritative for direct `agent invoke` payloads.
50
+
51
+ ## Composition without prescription
52
+
53
+ Projectman can represent boards, tasks, sprints/plans, reviews, issues, and handoffs. These are independent capabilities: board-only, sprint-only, combined, and neither are all valid choices. The same principle applies to memory, documents, chat, task execution, and optional working-discipline assets.
54
+
55
+ ## Local state boundaries
56
+
57
+ - user configuration selects servers and authentication;
58
+ - the logical AOPS data root contains machine-local runtime state;
59
+ - `agent-assets` beneath that data root contains verified immutable packages and activation/binding receipts;
60
+ - a repository `.aops` directory contains project binding and derived cache views;
61
+ - hosted reusable skills and prompts remain server-canonical unless an exact package is explicitly materialized.
62
+
63
+ For current paths, flags, previews, apply requirements, and troubleshooting, use `aops --help` and the relevant nested help.
@@ -0,0 +1,113 @@
1
+ <!-- Public packaged snapshot from canonical slug:aops ChatV3 guidance. Read only the relevant section; installed command --help and live schema win on drift. -->
2
+
3
+ # ChatV3 User Guide
4
+
5
+ ## 1 Encryption Modes And Invite Shapes
6
+
7
+ ### 1.1 Overview
8
+
9
+ ChatV3 channels declare `encryptionMode`:
10
+
11
+ | Mode | Cipher suite | Invite fragment | Content access model |
12
+ | --- | --- | --- | --- |
13
+ | `e2e` | `v0-shared-epoch` | `#<keyId>.<accessSecret>.<wrapSecret>` | server-blind content; every browser needs the invite wrap secret or a recovery package |
14
+ | `server-encrypted` | `v1-server-managed` | `#srv.<keyId>.<accessSecret>` | server-managed content encryption; the server can access message content and can reissue access for active AuthV2-bound members |
15
+
16
+ Cockpit creates new channels as `server-encrypted` by default and offers `e2e`
17
+ as the stricter client-managed option. The UI and documentation must keep the
18
+ copy honest: `server-encrypted` is encrypted by server-managed keys, not E2E.
19
+
20
+ `server-encrypted` joins use the `srv` invite form, then fetch server-managed
21
+ epoch keys for the active member. A fresh AuthV2 login can reopen a
22
+ server-encrypted channel by re-minting the member token when the principal is
23
+ still bound to an active membership. `e2e` channels cannot use server remint;
24
+ they stay locked until the browser has the invite wrap secret or account
25
+ recovery material.
26
+
27
+ Removing a member blocks future member-auth reads, remint, and server-managed
28
+ epoch-key reads. It does not delete any raw epoch keys or messages already
29
+ fetched by that browser before removal; use a rotate follow-up when stronger
30
+ post-removal secrecy is required.
31
+
32
+ ## 2 Agent CLI Contract
33
+
34
+ ### 2.1 Overview
35
+
36
+ Agents should use `aops chatv3` when they join or operate inside a ChatV3
37
+ product channel.
38
+
39
+ | Need | Command |
40
+ | --- | --- |
41
+ | Join from an invite | `aops chatv3 join "<invite>" --handle <agent> --save-session --json` |
42
+ | Send text | `aops chatv3 send --session <id> --room <slug> "<text>" --mark-delivered --mark-read --json` |
43
+ | Read once | `aops chatv3 read --session <id> --room <slug> --after-seq <n> --json` |
44
+ | Wait for new messages | `aops chatv3 listen --session <id> --room <slug> --after-seq <n> --timeout-sec <n> --json` |
45
+ | Roster | `aops chatv3 member list --session <id> --json` |
46
+ | Presence | `aops chatv3 presence set --session <id> --room <slug> --state working --json` |
47
+ | Leave | `aops chatv3 leave --session <id> --json` |
48
+ | Local sessions | `aops chatv3 session list|get|forget ... --json` |
49
+
50
+ `read` and `listen` always return explicit cursor state:
51
+
52
+ - `messages`, including `[]` when no new messages exist
53
+ - `messageCount`
54
+ - `latestSeq`
55
+ - `caughtUp`
56
+
57
+ `listen` exits with `0` when messages are found and `22` on timeout. It is a
58
+ polling primitive; server-sent events remain a UI/runtime concern.
59
+
60
+ `join` uses the server URL embedded in the invite by default. `--api-base-url`
61
+ is an explicit override for controlled local smoke tests. Join output includes a
62
+ short orientation summary with channel, active room, room count, member count,
63
+ recent message count, and the parsed invite mode (`e2e` or
64
+ `server-encrypted`). When `--save-session` is used, the local session store keeps
65
+ the member token plus either the `e2e` wrap secret or the imported
66
+ server-managed epoch keys encrypted at rest.
67
+
68
+ ## 3 Member And Presence Model
69
+
70
+ ### 3.1 Overview
71
+
72
+ Members use `MEMBER_STATUSES = active | removed` and
73
+ `MEMBER_ROLE_KEYS = owner | member | operator | observer`.
74
+
75
+ Presence uses `active | idle | working | reviewing | blocked | offline`.
76
+ Presence is scoped to a room and is safe to expose in roster surfaces because it
77
+ contains only member id, state, note, update time, and expiration state.
78
+
79
+ ## 4 Self Leave And Admin Cleanup
80
+
81
+ ### 4.1 Overview
82
+
83
+ `chatv3.member.update` is callable with member auth but the service keeps the
84
+ authorization boundary narrow:
85
+
86
+ - a member may only update its own member row to `status: "removed"`
87
+ - that self-leave path must not include `roleKey` or `displayName`
88
+ - every other member update still requires `owner` or `operator`
89
+
90
+ The CLI exposes the self path as `aops chatv3 leave`. Cockpit exposes both
91
+ member self-leave and owner/operator cleanup, but the domain service remains the
92
+ source of truth for authorization.
93
+
94
+ No migration is required for self-leave because `removed` is already the
95
+ canonical member status.
96
+
97
+ ## 5 Cockpit Expectations
98
+
99
+ ### 5.1 Overview
100
+
101
+ ChatV3 cockpit clients should make the agent-oriented state visible:
102
+
103
+ - channel/room orientation: active channel, active room, room count, member
104
+ count, message count, channel guidance, and room guidance
105
+ - roster and presence: active/removed members, role, presence state, read/deliver
106
+ cursors, and directive ACK rollup
107
+ - membership controls: current member can leave; owners/operators can remove
108
+ other active members
109
+
110
+ ChatV3 UI must not store bearer tokens in local storage, must not expose member
111
+ tokens in visible text, and must preserve the server-blind message-content
112
+ boundary for `e2e` channels. For `server-encrypted` channels, UI copy must
113
+ state that the server can access message content.
@@ -0,0 +1,162 @@
1
+ <!-- Public packaged snapshot from Docman domain user guide. Read only the relevant section; installed command --help and live schema win on drift. -->
2
+
3
+ # Docman User Guide
4
+
5
+ Docman keeps canonical written knowledge organized, searchable, versioned, and
6
+ available to both people and AI agents. Documents live on the hosted server
7
+ rather than being scattered across local files and chat sessions.
8
+
9
+ ## Ownership
10
+
11
+ - Projectman owns current execution plans and task status.
12
+ - Agentspace owns durable working context and reusable agent assets.
13
+ - Docman owns canonical written knowledge and its version history.
14
+ - Operator-owned storage owns file bytes and recovery lineage.
15
+
16
+ References can connect these domains without duplicating their source of truth.
17
+
18
+ ## Document Structure
19
+
20
+ Docman separates identity, versions, and composition:
21
+
22
+ ```text
23
+ group -> document -> document version
24
+ -> section -> ordered page link -> page -> page version
25
+ ```
26
+
27
+ Snippets, embeds, and assets can be linked into pages. This structure allows a
28
+ document to evolve without silently rewriting earlier published versions.
29
+
30
+ ## Help-First Discovery
31
+
32
+ Use the installed CLI help because command flags and available operations may
33
+ change between versions:
34
+
35
+ ```bash
36
+ aops doc --help
37
+ aops doc group --help
38
+ aops doc --help
39
+ aops doc version --help
40
+ aops doc section --help
41
+ aops doc page --help
42
+ aops doc search --help
43
+ aops doc answer --help
44
+ aops doc mirror --help
45
+ ```
46
+
47
+ For raw hosted operations, inspect the schema first:
48
+
49
+ ```bash
50
+ aops agent tools --domain docman
51
+ aops agent schema --tool docman.document.create
52
+ ```
53
+
54
+ Do not infer raw payload fields from sugar CLI flags.
55
+
56
+ ## Create and Organize Knowledge
57
+
58
+ The normal authoring flow is:
59
+
60
+ 1. Create or select a document group.
61
+ 2. Create the document identity and metadata.
62
+ 3. Create an immutable document version.
63
+ 4. Add sections for the intended reading structure.
64
+ 5. Create pages and page versions.
65
+ 6. Link pages to sections in explicit order.
66
+ 7. Set current versions after the content is reviewed.
67
+
68
+ Read the relevant help before each write. Prefer small CRUD operations over a
69
+ large import when making targeted changes.
70
+
71
+ ## Versioning
72
+
73
+ Versions are immutable snapshots of authored content. To revise content:
74
+
75
+ 1. read the current version
76
+ 2. create a new version with the intended change
77
+ 3. validate the new content and links
78
+ 4. set the new version as current
79
+
80
+ This preserves what readers and agents saw previously and makes publication
81
+ history auditable.
82
+
83
+ ## Sections and Pages
84
+
85
+ Sections provide navigation and grouping. Pages hold readable content. Ordered
86
+ link records determine which pages appear in a section and in what order.
87
+
88
+ Do not assume that creating a page automatically places it in a document. The
89
+ page must be linked into the appropriate section. Likewise, a document version
90
+ does not implicitly replace page versions.
91
+
92
+ ## Search and Answer
93
+
94
+ Docman indexes hosted content so agents can retrieve only the material relevant
95
+ to a task. Search returns matching sources. Answer operations produce a
96
+ deterministic response with evidence pointing back to canonical records.
97
+
98
+ When using a result:
99
+
100
+ - retain the source document/page/version identifiers
101
+ - reopen the exact version when accuracy matters
102
+ - distinguish retrieved evidence from an agent's inference
103
+ - avoid copying the answer into another canonical store without a reason
104
+
105
+ ## Markdown Import
106
+
107
+ Markdown is useful for initial migration or a guarded baseline. It is not a
108
+ second long-term source of truth.
109
+
110
+ Before import:
111
+
112
+ - identify the target group and document
113
+ - confirm whether the import creates or revises content
114
+ - inspect baseline/version guards
115
+ - preview the resulting structure when supported
116
+
117
+ After import, author subsequent canonical changes through Docman and export or
118
+ refresh mirrors as projections.
119
+
120
+ ## Publish and Export
121
+
122
+ Publication creates a readable projection of approved hosted content. Markdown
123
+ export makes documents portable for distribution or repository consumption.
124
+ Neither flow transfers canonical ownership away from Docman.
125
+
126
+ ## Read-Only Mirrors
127
+
128
+ Repositories may keep a read-only mirror for local agent context:
129
+
130
+ ```bash
131
+ aops doc mirror pull \
132
+ --project-slug <project> \
133
+ --group-uid <group> \
134
+ --out-dir ./.aops/docman \
135
+ --apply \
136
+ --json
137
+ ```
138
+
139
+ Mirrors must not be hand-edited and pushed back. Make the canonical change on
140
+ the hosted server, then pull the mirror again.
141
+
142
+ ## Raw Invoke Fallback
143
+
144
+ If a sugar command fails because its wrapper no longer matches a strict hosted
145
+ schema, stop trying guessed flag combinations. Inspect the operation contract:
146
+
147
+ ```bash
148
+ aops agent schema --tool docman.<operation-id>
149
+ aops agent invoke --tool docman.<operation-id> --input @input.json --apply
150
+ ```
151
+
152
+ Use raw invocation only as a bounded workaround and record the sugar defect for
153
+ repair.
154
+
155
+ ## Agent Guidance
156
+
157
+ - Retrieve the smallest relevant content set.
158
+ - Preserve source and version references in decisions and handoffs.
159
+ - Create a new version instead of mutating historical content.
160
+ - Keep execution status in Projectman and session context in Agentspace.
161
+ - Treat local mirrors as read-only projections.
162
+ - Validate links and current-version pointers before publishing.
@@ -0,0 +1,212 @@
1
+ <!-- Public packaged snapshot from Projectman domain user guide. Read only the relevant section; installed command --help and live schema win on drift. -->
2
+
3
+ # Projectman User Guide
4
+
5
+ This guide explains how operators and AI agents use Projectman through the
6
+ hosted `aops pm` surface. Projectman is the source of truth for current
7
+ planning and execution status.
8
+
9
+ ## Mental Model
10
+
11
+ ```text
12
+ board
13
+ -> kanban task
14
+ -> sprint
15
+ -> phase
16
+ -> microtask
17
+ ```
18
+
19
+ - The board makes delivery visible.
20
+ - The kanban task represents the work item.
21
+ - The sprint is the task-scoped implementation plan.
22
+ - Phases organize the plan.
23
+ - Microtasks track the smallest verifiable units of work.
24
+
25
+ Durable session context belongs in Agentspace memory. Canonical long-form
26
+ knowledge belongs in Docman. Projectman records what is being delivered, its
27
+ state, its evidence, and its review lineage.
28
+
29
+ ## Help-First Discovery
30
+
31
+ Read the exact command surface before writing:
32
+
33
+ ```bash
34
+ aops pm --help
35
+ aops pm board --help
36
+ aops pm ktask --help
37
+ aops pm sprint --help
38
+ aops pm utask --help
39
+ aops pm issue --help
40
+ aops pm feedback --help
41
+ aops pm review-request --help
42
+ aops pm handoff --help
43
+ ```
44
+
45
+ Use sugar commands for routine work. For raw operation invocation, inspect the
46
+ hosted schema first:
47
+
48
+ ```bash
49
+ aops agent tools --domain projectman
50
+ aops agent schema --tool projectman.kanban-task.create
51
+ ```
52
+
53
+ ## Select the Project
54
+
55
+ Projectman writes are project-scoped. Bind the repository or pass the exact
56
+ project selector required by the installed CLI. Confirm the active project
57
+ before mutating a board, task, or sprint.
58
+
59
+ ## Boards
60
+
61
+ Create a board when the project does not already have an appropriate delivery
62
+ surface:
63
+
64
+ ```bash
65
+ aops pm board create --name "Delivery" --apply
66
+ aops pm board list --json
67
+ ```
68
+
69
+ A board contains ordered columns. Board lifecycle actions can initialize or
70
+ resume a working board, but closing a board is an operator decision.
71
+
72
+ ## Kanban Tasks
73
+
74
+ Create a task before implementation starts:
75
+
76
+ ```bash
77
+ aops pm ktask create \
78
+ --board delivery \
79
+ --column Todo \
80
+ --title "Implement the selected capability" \
81
+ --apply
82
+ ```
83
+
84
+ The task is the visible delivery item. Keep its state honest: moving a task to
85
+ Done should follow implementation and validation, not intention.
86
+
87
+ Useful reads:
88
+
89
+ ```bash
90
+ aops pm ktask list --board delivery --json
91
+ aops pm ktask get --task <task-id> --json
92
+ ```
93
+
94
+ ## Sprints and Implementation Plans
95
+
96
+ Create a sprint under the kanban task. State what will change, why it matters,
97
+ and how completion will be verified:
98
+
99
+ ```bash
100
+ aops pm sprint create \
101
+ --task <task-id> \
102
+ --name "Capability implementation" \
103
+ --goal "NE: deliver the capability; NICIN: make the workflow usable; DONE-WHEN: tests and live verification pass" \
104
+ --apply
105
+ ```
106
+
107
+ The `aops plan` surface is a facade over this sprint plan. It does not create
108
+ a second plan store.
109
+
110
+ Use microtasks for bounded, verifiable steps. Update each item individually so
111
+ the sprint remains a trustworthy execution record:
112
+
113
+ ```bash
114
+ aops pm utask create --sprint <sprint-id> --title "Implement" --apply
115
+ aops pm utask create --sprint <sprint-id> --title "Validate" --apply
116
+ aops pm utask update --id <microtask-id> --status doing --apply
117
+ aops pm utask update --id <microtask-id> --status completed --apply
118
+ ```
119
+
120
+ Inspect `aops pm utask --help` for the exact phase and ordering flags in the
121
+ installed version.
122
+
123
+ ## Issues and Feedback
124
+
125
+ Use issues for defects, blockers, or follow-up work that must remain visible.
126
+ Use feedback for operator observations and requested improvements. Preserve the
127
+ link to the task, sprint, or review that produced the item.
128
+
129
+ ```bash
130
+ aops pm issue --help
131
+ aops pm feedback --help
132
+ ```
133
+
134
+ Feedback can become tracked work without losing its origin. Do not copy the
135
+ same concern into unrelated records without retaining lineage.
136
+
137
+ ## Review Requests
138
+
139
+ Review requests coordinate synchronous or asynchronous review between agents or
140
+ operators. The implementation remains attached to its Projectman context, and
141
+ review results are appended rather than overwritten.
142
+
143
+ ```bash
144
+ aops pm review-request --help
145
+ ```
146
+
147
+ A reviewer can approve, comment, or request changes. When changes are requested:
148
+
149
+ 1. keep the original result intact
150
+ 2. update the implementation task and sprint
151
+ 3. record the new evidence
152
+ 4. create or continue the linked re-review flow
153
+
154
+ Chat can wake or coordinate participants, but Projectman remains the review and
155
+ execution source of truth.
156
+
157
+ ## Handoffs
158
+
159
+ A handoff should let another agent continue without reconstructing the entire
160
+ session. Include:
161
+
162
+ - what changed
163
+ - what was validated and with which evidence
164
+ - what remains open
165
+ - the exact next action
166
+ - relevant task, sprint, issue, review, document, or artifact references
167
+
168
+ Use `aops pm handoff --help` for the installed command shape. Durable
169
+ narrative context may also be written to Agentspace memory, but do not duplicate
170
+ the active execution status in a competing store.
171
+
172
+ ## Reading Local Presentation Views
173
+
174
+ After synchronizing the read-only cache, Projectman can be inspected through
175
+ local views without mutating hosted state:
176
+
177
+ ```bash
178
+ aops view dashboard --style agent
179
+ aops view board <selector>
180
+ aops view task <selector>
181
+ aops view sprint <selector>
182
+ aops view digest --task <selector>
183
+ ```
184
+
185
+ Views do not call the server, synchronize data, or write decisions. Use normal
186
+ `pm`, `mem`, or `discuss` commands for durable changes.
187
+
188
+ ## Status Discipline
189
+
190
+ - `todo`: planned but not started
191
+ - `doing`: active work
192
+ - `completed`: implemented and honestly validated
193
+ - blocked or cancelled states: use only when supported by the current command
194
+ and record the reason
195
+
196
+ Do not close boards, rooms, or project-level work merely because one agent turn
197
+ ended. Ordinary closeout writes current status and a handoff, leaving shared
198
+ surfaces open for the operator.
199
+
200
+ ## Raw Invoke Fallback
201
+
202
+ If a sugar wrapper fails because its payload no longer matches a strict hosted
203
+ schema, stop guessing flags. Inspect the raw contract and invoke the operation
204
+ directly only when necessary:
205
+
206
+ ```bash
207
+ aops agent schema --tool projectman.<operation-id>
208
+ aops agent invoke --tool projectman.<operation-id> --input @input.json --apply
209
+ ```
210
+
211
+ Record the sugar defect separately so the workaround does not become the normal
212
+ workflow.
@@ -0,0 +1,94 @@
1
+ <!-- Public packaged guide derived from the mounted Community Sys catalog. Read only the relevant section; live schema wins on drift. -->
2
+
3
+ # Sys User Guide
4
+
5
+ Sys provides small infrastructure capabilities shared by Community domains:
6
+ tenant-scoped counters, country lookup, event persistence, and rate-limit
7
+ state. It is mounted on the AOPS gateway but intentionally has no separate
8
+ `aops sys` sugar tree.
9
+
10
+ ## Discover the live contract
11
+
12
+ ```bash
13
+ aops agent tools --domain sys --summary --json
14
+ aops agent tools --domain sys --q counter --limit 10 --examples --summary --json
15
+ aops agent schema --tool sys.counter.next --summary --json
16
+ ```
17
+
18
+ Use `--examples` only when a small invocation shape is useful. If a compact
19
+ schema is opaque, inspect the full schema or tool detail; never guess inner
20
+ `body` fields after a validation error.
21
+
22
+ ## Countries
23
+
24
+ ```bash
25
+ aops agent invoke --tool sys.country.resolve-iso2 \
26
+ --input '{"body":{"iso2Code":"TR"}}' --json
27
+ aops agent invoke --tool sys.country.search \
28
+ --input '{"body":{}}' --json
29
+ ```
30
+
31
+ Country records are shared reference data. Normalize ISO2 input to the shape
32
+ required by the live schema and prefer lookup over duplicating country truth
33
+ inside another domain.
34
+
35
+ ## Counters
36
+
37
+ ```bash
38
+ aops agent invoke --tool sys.counter.get \
39
+ --input '{"body":{"counterKey":"inventory.item.code"}}' --json
40
+ aops agent invoke --tool sys.counter.preview-next \
41
+ --input '{"body":{"counterKey":"inventory.item.code","prefix":"ITM","width":5}}' --json
42
+ ```
43
+
44
+ `preview-next` does not allocate a value. `next` atomically allocates one and
45
+ requires a guarded write:
46
+
47
+ ```bash
48
+ aops agent invoke --tool sys.counter.next \
49
+ --input '@counter-next.json' --apply --json
50
+ ```
51
+
52
+ Treat `counter.reset` as destructive. Read the live schema, inspect the current
53
+ counter first, and use an idempotency key when the invoke surface supports it.
54
+
55
+ ## Event store
56
+
57
+ Read operations include `list`, `list-by-aggregate`, and `list-by-type`.
58
+ Publishing persists a domain event:
59
+
60
+ ```bash
61
+ aops agent schema --tool sys.event-store.publish --summary --json
62
+ aops agent invoke --tool sys.event-store.publish \
63
+ --input '@event.json' --preview --json
64
+ aops agent invoke --tool sys.event-store.publish \
65
+ --input '@event.json' --apply --idempotency-key event-001 --json
66
+ ```
67
+
68
+ Use the business domain as the semantic owner. Sys stores the event; it does
69
+ not invent aggregate or event-type conventions for another domain. Preview
70
+ cleanup and verify retention scope before applying it.
71
+
72
+ ## Rate limiter
73
+
74
+ ```bash
75
+ aops agent invoke --tool sys.rate-limiter.check \
76
+ --input '{"body":{"key":"user:123","scope":"login"}}' --json
77
+ aops agent invoke --tool sys.rate-limiter.record-attempt \
78
+ --input '@rate-attempt.json' --preview --json
79
+ ```
80
+
81
+ `record-attempt`, `reset`, and `cleanup-expired` mutate database state. Inspect
82
+ the live contract and current stats before reset/cleanup. Do not put secrets or
83
+ raw authentication tokens into limiter keys.
84
+
85
+ ## Safety and troubleshooting
86
+
87
+ 1. Use `aops agent tools --domain sys --summary --json` to confirm the connected
88
+ server actually exposes the operation.
89
+ 2. Use `aops agent schema --tool sys.<operation> --summary --json` before every
90
+ new raw payload.
91
+ 3. Stop random retries after a validation error; compare against full schema or
92
+ the operation detail.
93
+ 4. Keep tenant/scope context explicit when the server requires it.
94
+ 5. Preview writes when supported, apply once, then read back the result.