Redesign concurrent work that shares a mutable file, branch, key, or state object by separating ownership before adding serialization. Use when actors may race, a lock is proposed, or coordination relies on taking turns.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add hani-q/qstack --skill qstack-separate-before-serializing-shared-state --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Qstack Separate Before Serializing Shared State?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hani-q-qstack-separate-before-serializing-shared-state)More formats (shields.io, HTML) on the badges page.
---
name: qstack-separate-before-serializing-shared-state
description: >
Redesign concurrent work that shares a mutable file, branch, key, or state
object by separating ownership before adding serialization. Use when actors
may race, a lock is proposed, or coordination relies on taking turns.
license: MIT
---
# Separate before serializing shared state
Instructions and conventions are not concurrency control. Start by removing
the shared write target. Add serialization only when one canonical writer is a
real domain invariant.
## Decide from ownership
1. Inventory every mutable object and every actor that can write it. Include
files, branches, database rows, keys, caches, queues, and in-memory state.
2. Ask whether the actors publish independent facts. If they do, give each
actor its own file, key, branch, or state directory and merge only at a
read-only reporting boundary.
3. Confirm that the split removes shared mutation. Two workers writing separate
fields of one JSON document still share a write target; separate documents
with one owner each do not.
4. If one shared object is required, choose structural serialization: a
single-writer actor, sequential phases, a lockfile with defined stale-lock
behavior, an atomic transaction, or compare-and-swap.
5. Prove the design under overlap, retry, crash, and stale-state scenarios.
Report the ownership map, the sharing that can be removed, any invariant that
requires serialization, and the concrete mechanism enforcing it. A request for
analysis does not authorize changing the system. Assess compatibility and
migration before changing a persisted format, public interface, or branch
workflow. It also does not authorize commits, pushes, publishing, deployment,
or external messages.
Adapted from Lauren Tan's PStack
[`principle-separate-before-serializing-shared-state`](https://github.com/cursor/plugins/blob/60c641e4fad674784b30abcf9f8915dea39df38d/pstack/skills/principle-separate-before-serializing-shared-state/SKILL.md)
at commit `60c641e4fad674784b30abcf9f8915dea39df38d` under the MIT License.
See [third-party notices](../../THIRD_PARTY_NOTICES.md).
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!