stacklok / stacklok/mecatl

Work can be shared deliberately

Open
#370 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Go
Stars
152
Forks
16
Avg merge
14h 48m
Merged PRs (30d)
536

Description

Alice adds Bob as an observer, then hands off.

mecatl. Needs #368 and #369 both — this is the last one.

Hazards

Facts that were expensive to find and that nobody re-derives on the way to implementing. Each is verified against code.
Per-item read control inside a session is defeated three ways, each silently: the
model can include the content in an answer, the agent re-derives it under a new prompter
unlabelled, and compaction folds the label away. The primitive for mixed sensitivity is a
separate derived artifact — a fork — which is the tearline pattern every document vendor
converged on independently.

Acceptance criteria

  • Sharing is an explicit recorded act with a named author. Access is never inferred from activity.
  • Read and prompt are separate grants, so an observer is a first-class state rather than a weakened
    owner.
  • Only a principal who already holds the object can extend access to it.
  • Mixed sensitivity is handled by deriving a new object, and the doc says why per-item fields are
    not offered.

Proof

The same properties, adversarially, with an actor and an ordering. A property-level criterion can go green while being false; these are what stop that.

  • Alice adds Bob as an observer: he reads, and cannot prompt.
  • Alice hands off: Bob prompts, and Alice's own access follows the recorded decision rather than
    silently vanishing.
  • Bob cannot add himself, and cannot add a third party.

Slices

Decomposition is the implementer's job; these are the natural seams, not a mandate.

  • Read-only observers first, then explicit handoff.

Reasoning

The design this comes from, both on main:

Every hazard above is stated in full here rather than linked, so this issue stands on its own.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading docs/agent-identity-model.md and docs/agent-identity-outbound.md to understand the existing identity boundaries. Use the acceptance criteria and proof scenarios as the behavioral target, beginning with read-only observers before explicit handoff. Done means sharing is recorded with a named author, read and prompt grants remain distinct, authorization cannot be self-extended, and mixed sensitivity is handled through a documented derived object.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
authorization, backend, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.