Files
PaperClipAI/maps/agent-access-map/companies.md
DottaandPaperclip 5e8e992df2 fix(storybook): reconcile capability associations and map omissions (#16154)
## Thinking Path

> - Paperclip helps people manage AI agents and their work.
> - The feature map describes user capabilities and verification
recipes.
> - Storybook holds isolated examples of those capabilities.
> - Missing catalog links can hide existing examples.
> - Some stories also expose shipped capabilities absent from the map.
> - This pull request adds verified source associations and three paired
map entries.
> - Readers can find existing examples without changing their homes or
URLs.

## Linked Issues or Issue Description

Refs #16052, #16049 and #16046.

**What existing behavior does this improve?**

Storybook capability lookup and the feature/agent access maps.

**Current behavior**

Seventy capabilities have no example link. Some matching stories already
exist. Primary-agent preferences and company decision/fast-response
services appear only under broad neighboring capabilities.

**Proposed behavior**

Add source-supported links across 34 suites. Keep shared foundations in
place while cross-listing them. Add primary-agent, decision-model and
fast-response capabilities to both upstream maps. Retain explicit
simulation and partial-example limits.

**Reason and benefit**

The catalog distinguishes missing associations from missing examples.
The upstream map describes three existing product capabilities more
precisely.

**Breaking changes**

None to product behavior, story exports, folders, sidebar titles or
URLs. A shared foundation can declare a reasoned `home: "foundations"`
override while referencing related capabilities.

## What Changed

- Add 55 references across 34 suites. Replace primary-agent suites'
reporting-line association with their own capability.
- Add three source-reviewed capabilities and their API/actor boundaries
to paired maps.
- Preserve the shared Foundations home when cross-listing developer
design examples. Add a validation regression test.
- Record which exports demonstrate each association and what remains
simulated or unverified.
- Regenerate the catalog and capability data. Preserve all original 223
authored suites and 2,210 story IDs. Retain the two skill-removal
stories added by current master, for 2,212 authored stories in total.
- Reduce empty example lookups from 70 of 171 capabilities to 59 of 174.
Links do not establish complete capability coverage.

## Verification

- Passed: 27 catalog/generator/map tests, catalog validation, map
structural checks, token gates and skill validation.
- Passed: source inventory comparison preserves all authored files,
titles, meta IDs and story IDs.
- Passed: repository typecheck/build and Storybook build. Final built
index has 2,248 entries and preserves all previous entries, including
the two skills stories added by current master.
- The broad local repository test run was interrupted before completion
to resolve a new master conflict. A complete local suite pass is not
claimed; fresh CI passed on the reconciled branch.
- Browser: Design links to preserved Foundations stories;
company-service sections link settings/history/journey suites; decision
SetupToHistory passed 12 interaction steps; primary-agent ReplacePrimary
passed four steps. No console errors in selected checks.
- Greptile: 5/5 on final commit
`805a8af62abe589907e7cc6ca1b415ce1e0cc3c0`, with no findings or
unresolved threads.
- Final-revision CI passed all 57 checks/statuses, including all eight
browser shards, server and Runner tests, typecheck and build. The
unchanged Cloud-auth mocked-response race seen on a superseded revision
did not recur on the final commit. No test expectations were changed.
- New agent-access evidence is source-only. Live provider and
agent-credential verification is not established.

## Risks

- Suite-level associations can represent only selected states. Notes
retain those limits and existing review classifications.
- In-memory connection drafts do not prove reload persistence.
Resume-failure UI does not prove successful continuation. No-op budget
controls do not prove relief or resumption.
- Three map capabilities document existing behavior. No permission, API,
provider or production component changes.

## Model Used

OpenAI Codex, GPT-6 family, with reasoning, code execution and source
inspection. The exact runtime model ID and context window are not
exposed in this session.

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have searched GitHub for duplicate or related PRs and linked
them above
- [x] I have either (a) linked existing issues with `Fixes: #` / `Closes
#` / `Refs #` OR (b) described the issue in-PR following the relevant
issue template
- [x] I have not referenced internal/instance-local Paperclip issues or
links (only public GitHub `#NNN` / `github.com/paperclipai/paperclip`
URLs)
- [x] My branch name describes the change (e.g. `docs/...`, `fix/...`)
and contains no internal Paperclip ticket id or instance-derived details
- [x] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [x] All Paperclip CI gates are green
- [x] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before
requesting merge

Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-10-13 08:11:15 -05:00

7.7 KiB

Companies and portability — agent access

Product map: Companies and portability.

Review date: 2026-10-12. Source commit: 58e16dbddfc9c8d0cf60867f9d9847f0feda055b. Native REST transport reconciled in this change; see the shared transport contract.

This is a source-reviewed baseline of representative operations and known gaps. Each capability needs operation-level review before its entire scope can be qualified. No live agent execution is claimed. Follow the map contract for format, permission checks, evidence and maintenance.

selection

Review: baseline.

API: present — representative operation IDs:

  • GET /api/companies/{companyId}.
  • GET /api/companies.
  • POST /api/companies.

Agent access: partial — Agent reads its bound company; CLI context chooses it; board lists/creates companies.

Policy: Same-company CEO or board for identity/import operations; list/create/archive convenience endpoint is board-gated.

Evidence: source-only — implementation at the reviewed commit above.

Verification: not-run — exercise a listed permitted operation with actual agent credentials/run context; inspect its result and applicable persistence/attribution. Assert the relevant denied actor, owner, company or mode from Policy. Review the remaining operations before qualifying the whole capability.

Gaps: A worker cannot enumerate/create companies via its company agent key. Browser selection is local state.

identity

Review: baseline.

API: present — representative operation IDs:

  • PATCH /api/companies/{companyId}.
  • PATCH /api/companies/{companyId}/branding.

Agent access: available — Same-company CEO REST / native call_api / CLI company.

Policy: Same-company CEO or board for identity/import operations; list/create/archive convenience endpoint is board-gated.

Evidence: source-only — implementation at the reviewed commit above.

Verification: not-run — exercise a listed permitted operation with actual agent credentials/run context; inspect its result and applicable persistence/attribution. Assert the relevant denied actor, owner, company or mode from Policy. Review the remaining operations before qualifying the whole capability.

Gaps: The CEO restriction is a real policy, not a missing API; ordinary employees need denial evidence.

archive

Review: baseline.

API: present — representative operation IDs:

  • POST /api/companies/{companyId}/archive.
  • PATCH /api/companies/{companyId}.

Agent access: partial — Board archive endpoint; CEO company PATCH can express status changes.

Policy: Same-company CEO or board for identity/import operations; list/create/archive convenience endpoint is board-gated.

Evidence: source-only — implementation at the reviewed commit above.

Verification: not-run — exercise a listed permitted operation with actual agent credentials/run context; inspect its result and applicable persistence/attribution. Assert the relevant denied actor, owner, company or mode from Policy. Review the remaining operations before qualifying the whole capability.

Gaps: Convenience archive and general company PATCH have different authorization. Review equivalence rather than declaring all archival human-only.

portability

Review: baseline.

API: present — representative operation IDs:

  • POST /api/companies/{companyId}/exports.
  • POST /api/companies/{companyId}/imports/preview.
  • POST /api/companies/{companyId}/imports/apply.

Agent access: partial — Same-company CEO REST / native call_api / CLI exports and eligible same-company imports.

Policy: Same-company CEO or board for identity/import operations; list/create/archive convenience endpoint is board-gated.

Evidence: source-only — implementation at the reviewed commit above.

Verification: not-run — exercise a listed permitted operation with actual agent credentials/run context; inspect its result and applicable persistence/attribution. Assert the relevant denied actor, owner, company or mode from Policy. Review the remaining operations before qualifying the whole capability.

Gaps: Exports use inline credential delivery and encrypted mutation receipts. New-company/ZIP import flows retain their board and transport constraints.

decision-models

Review: baseline.

API: present — GET and PUT /api/companies/{companyId}/decision-model; POST /api/companies/{companyId}/decision-model/test; GET /api/companies/{companyId}/decision-model/availability; GET /api/companies/{companyId}/decision-model/history.

Agent access: partial — same-company REST and admitted native call_api availability/history reads where policy allows. Settings and the fixed Test action require board identity. Native rollout/run gates follow the shared transport contract.

Policy: Settings access requires board and company access; non-managers receive no settings or choices. Configuration and tests additionally require connection management authority (owner/admin, instance admin, or tools:manage_connections). History requires company_scope:read and redacts task/run links without issue:read. Background sponsorship and budget admission remain separate service checks.

Evidence: source-only — reviewed on 2026-10-13 at 60bc0d5fee9a6e48db08fc016521fee3d9f57d67: routes, service, and connection authority.

Verification: not-run — read history with an allowed company actor and an actor without task access; check link redaction. Reject agent configuration/tests and board mutations without connection-management permission. Verify settings and bounded test receipts with an owned simulated provider.

Gaps: No agent settings/test path; permitted history does not delegate management. Live native and agent-credential reads remain unverified.

fast-responses

Review: baseline.

API: present — GET and PUT /api/companies/{companyId}/fast-response; GET /api/companies/{companyId}/fast-response/models; GET /api/companies/{companyId}/fast-response/availability; POST /api/companies/{companyId}/fast-response/test; GET /api/companies/{companyId}/fast-response/history.

Agent access: partial — same-company REST and admitted native call_api history reads where policy allows, subject to the shared transport contract. Settings, model selection, availability and test controls require board identity.

Policy: Board and company access gate configuration surfaces. Updates, models and tests additionally require connection-management authority. History requires company_scope:read; task/run links require issue:read. The experiment, provider account, sponsorship and budget controls still gate actual acknowledgements.

Evidence: source-only — reviewed on 2026-10-13 at 60bc0d5fee9a6e48db08fc016521fee3d9f57d67: routes, service, and connection authority.

Verification: not-run — inspect history and redacted task links as an allowed company actor. Reject agent settings/models/availability/tests and unauthorized board mutations. Use a simulated provider to inspect a saved configuration, success receipt, timeout and recorded usage.

Gaps: No agent configuration/test path. An acknowledgement is not completed task work. Live native, provider and agent access remain unverified.