@aopslabs/aops 0.3.4 → 0.3.6
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/README.md +4 -3
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/SKILL.md +49 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/agentspace/SKILL.md +78 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/aops-cli-core/SKILL.md +110 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/chatv3/SKILL.md +49 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/collaborative-work/SKILL.md +85 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/discuss/SKILL.md +66 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/docman/SKILL.md +69 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/hosted-chat/SKILL.md +64 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/mission/SKILL.md +54 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/projectman/SKILL.md +86 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/sys/SKILL.md +36 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/view/SKILL.md +58 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/references/working-disciplines/SKILL.md +69 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/agent-assets.md +81 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/agentspace.md +1098 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/aops-cli.md +1106 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/aops-system.md +63 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/chatv3.md +113 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/docman.md +162 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/projectman.md +212 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/sys.md +94 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/files/user-guides/working-disciplines.md +588 -0
- package/agent-assets-release/agent-assets/core/8b06775d96e37f8aef535673b8b855c11f29042f3c70ec4f273b6df04dbe824a/manifest.json +127 -0
- package/agent-assets-release/agent-assets/gateway/aops/SKILL.md +14 -0
- package/agent-assets-release/agent-assets/inventory.json +29 -0
- package/agent-assets-release/agent-assets/projection.json +8 -0
- package/agent-assets-release/agent-assets-release.json +181 -0
- package/agent-assets-release/agent-assets-release.sigstore.json +64 -0
- package/dist/lib/agent-assets/envelope.js +2 -0
- package/dist/lib/agent-assets/release-input.js +14 -2
- package/dist/lib/community-release-verifier.js +3 -2
- package/dist/lib/setup-agent-assets-release.js +8 -2
- package/dist/lib/setup-docker-server.js +2 -2
- package/dist/lib/tui-launcher.js +1 -0
- package/native/tui/darwin-arm64/aops-tui +0 -0
- package/native/tui/win32-x64/aops-tui.exe +0 -0
- 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.
|