fulcra-sister-cities
Run or facilitate Sister Cities, an asynchronous city-trade social game for 3–10 players.
Skill by fulcradynamics
Chalk Labs
Need help deploying fulcra-sister-cities?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/fulcradynamics-fulcra-sister-cities
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/fulcra-sister-cities
What's inside
- Skill name
fulcra-sister-cities- Description
- Run or facilitate Sister Cities, an asynchronous city-trade social game for 3–10 players. Cities are light social-game flavour; players trade everyday imports such as candy, soft drinks, books, games, plants, and small comforts, with automatic redacted round editions.
- License
- MIT
- Instructions
- 233 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (135)
- .gitignore
- NAME.md
- README.md
- SKILL.md
- config.json
- README.md · content/
- gazetteer.json · content/
- import_needs.json · content/
- newspaper.json · content/
- questions.json · content/
- site.css · content/
- image-upgrader.md · docs/
- m10-reading-experience.md · docs/
- m11-everyday-imports.md · docs/
- m12-current-trade-priority.md · docs/
- m2-engine.md · docs/
- m3-economy.md · docs/
- m4-questions.md · docs/
- m5-newspaper.md · docs/
- m6-hosting.md · docs/
- m7-endgame.md · docs/
- m8-integration.md · docs/
- m9-imports-and-publication.md · docs/
- __init__.py · engine/
- aggregate.py · engine/
- audit.py · engine/
- ballot.py · engine/
- clock.py · engine/
- config.py · engine/
- content.py · engine/
- dice.py · engine/
- economy.py · engine/
- endgame.py · engine/
- errors.py · engine/
- game.py · engine/
- join.py · engine/
- money.py · engine/
- persistence.py · engine/
- rotation.py · engine/
- state.py · engine/
- trade.py · engine/
- views.py · engine/
- __init__.py · facilitator/
- transaction.py · facilitator/
- __init__.py · hosting/
- build.py · hosting/
- guard.py · hosting/
- identity.py · hosting/
- manifest.py · hosting/
- page.py · hosting/
- serve.py · hosting/
- __init__.py · newspaper/
- copy.py · newspaper/
- departments.py · newspaper/
- edition.py · newspaper/
- endgame.py · newspaper/
- imagery.py · newspaper/
- portrait.py · newspaper/
- prose.py · newspaper/
- publish.py · newspaper/
- …and 75 more
SKILL.md (first lines)
# Sister Cities
**Sister Cities** is an asynchronous social game. Players are mayors of
unique cities. Each shared round combines city import needs, anonymous export
offers, blind winner choice, profit, mayor questions, and a newspaper-style
edition of **The Daily Manifest**.
This skill vendors the runnable v1 engine and content. It is not a thin link
to a private project repo: another agent can install, test, inspect, and
extend the same code directly.
## Before hosting a real game
1. Create or join one shared Fulcra Workspace team:
```text
team/sister-cities-<game-id>/
```
2. Give each participating agent a normal `fulcra-workspaces` member
directory/inbox. The facilitator is also a player and uses the same game
rules as everyone else.
3. Keep actual identity mapping private to the player agents/facilitator.
Published material uses city/mayor identity only.
4. Confirm that all players understand publication: the newspaper is shared
to the group but must not expose non-winning export origins.
## Install and verify
From this skill directory:
```bash
uv venv .venv
uv pip install --python .venv/bin/python -e .
.venv/bin/python run_tests.py
.venv/bin/python -m playtest.run --check
```
`run_tests.py` verifies engine/newspaper/hosting behavior. The bundled
`playtest/` fixture is a synthetic eight-mayor integration run used for
regression testing; it contains no real participant data.
## Core game contract
- 3–10 configurable players; each city is unique.
- Fixed facilitator, first in city order, but their user plays normally.
- One shared round timer (24 hours by default, configurable).
- Each importing mayor files the city's next order from eligible suggestions or
as a freeform request; no city is silently assigned a random need.
- Imports and exports are relatable everyday things -- candy, soft drinks,
books, snacks, music, games, clothes, plants, pets, and small comforts --
not civic procurement, specialist work, or generic advice prompts.
- Cities are social-game flavour, not a demand that players role-play real
mayors or solve complex municipal problems.
- Each player gets one combined check-in per round, with up to two slots.
- A current open-trade export is never displaced by a future import-order
prompt; in a three-city game, import choices arrive every three rounds, on
the city's own turn.
- Import turns rotate by city order; players join that queue after their
first export.
- Exports are freeform and capped per player per need per round.
- Importer chooses blindly in the following round; losing export origin/text
is never published.
- Player-entered export text is quoted as player voice, not rewritten or blocked
by the newspaper's editorial tone gate. A winning quote may name its mayor;
non-winning origins remain permanently withheld.
- No offers: importing city ramps up domestic industry and receives profit.
- No winner pick: submitted cities split profit as configured.
- Profit is 2d6-style and accumulates on the visible city leaderboard.
- Mayor questions are freeform/getting-to-know-you prompts and appear in
clever aggregate newspaper language.
- Completing a round automatically renders its redacted edition, rebuilds the
curated archive, and produces a group-availability notice.
- Every edition has an image: raster preferred when a provider exists,
game-state-informed SVG/procedural fallback otherwise.
- The stable paper URL opens the newest issue; each permanent issue has clear
latest, archive, and adjacent-issue navigation.
`config.json` is the single source of tunable game policy.
## Agent-facing play
The engine is transport-neutral: players may talk to their own agents, or a
facilitator may relay for a player without an agent. Do not have one agent
role-play every mayor in a real test; use separate agent sessions and the
records below so privacy/order failures are observable.
### Canonical state and Workspace contract
The **facilitator's private local engine snapshot is canonical**, not the
Workspace. Create `state/game.snapshot` on the facilitator's durable local
storage and use `engine.persistence.SnapshotStore` around every transaction:
```python
from engine import GameEngine
from engine.persistence import SnapshotError, SnapshotStore
from facilitator import Facilitator
store = SnapshotStore("state/game.snapshot")
with store.locked():
try:
game = store.load()
except SnapshotError: # first transaction only: create/configure/start it
game = GameEngine()
# Attach once per loaded runtime, before any tick/advance. This is the
# public automatic-publication API; it runs on every completed round.
desk = Facilitator.attach(game)
# perform one engine action (join, submit, pick, or tick)
store.save(game)
```
`SnapshotStore` uses a separate exclusive lock and atomic replace, so there is
one writer even if a facilitator restarts or a second session is accidentally
started. The snapshot contains the real handle-to-city routing, exporter ledger,
RNG seed, counters, timer, queue, and used check-ins. Keep it local to the
facilitator; it is ignored by Git and must never be copied into Workspace.
After each committed transaction, the facilitator writes these **redacted
Workspace records** (JSON or Markdown with the same fields):
| Record | Required fields | May not contain |From fulcradynamics/community-skills, MIT.
More from fulcradynamics/community-skills
- 0.609score
use-agents-for-pre-networking-at-events
fulcradynamics
Pre-network at a conference or event run on Agent Mixer: put your person on Fulcra, learn what they want from the event, share their attendee card with other…
SkillAFreshness: A★ 3Claude Code +9 - 0.609score
trade-agent-hacks-by-invite
fulcradynamics
Start or join an invite-only network on Fulcra where people's agents trade hacks (tips, tricks, prompts and skills that make an agent more useful).
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
track-my-dealflow
fulcradynamics
Use when a content creator asks about their brand deals, contracts, what's due, who owes them, or anything in Track My Dealflow…
SkillAFreshness: A★ 3Claude Code +9 - 0.566score
fulcra-agent-coordination
fulcradynamics
Coordination layer over fulcra-workspaces: presence and liveness, durable roles with leases, resumable continuity, a review handshake, directed work with…
SkillBFreshness: B★ 3Claude Code +9 - 0.566score
fulcra-vault
fulcradynamics
Manage a durable, Obsidian-like shared markdown knowledge vault using Open Knowledge Format (OKF) stored in Fulcra, enabling persistent shared memory across…
SkillBFreshness: B★ 3Claude Code +9 - 0.562score
fulcra-harness-dashboard
fulcradynamics
Adapts fulcra-project-dashboard into a safe, manager-facing view for a task-specific agent control harness: milestone/PR timeline, run evidence, durable…
SkillBFreshness: B★ 3Claude Code +9 - 0.561score
fulcra-project-dashboard
fulcradynamics
Builds a management dashboard for an agent-teams workspace, showing progress, logs, a generated summary, timeline/milestone charts, and a word map of agent…
SkillBFreshness: B★ 3Claude Code +9 - 0.561score
fulcra-rapid-prototype
fulcradynamics
Scaffold a project-specific Fulcra runtime harness and its separate control harness.
SkillBFreshness: B★ 3Claude Code +9 - 0.559score
fulcra-prototype-grill-me
fulcradynamics
Act as the lead prototyping engineer for Fulcra.
SkillBFreshness: B★ 3Claude Code +9 - 0.557score
fulcra-computed-data-types
fulcradynamics
Generates custom Python scripts to parse raw data exports and ingest them as computed Fulcra data types, dynamically tagging records by a specific data…
SkillBFreshness: B★ 3Claude Code +9 - 0.554score
fulcra-watch-together
fulcradynamics
Compare two consenting people's viewing histories and recommend mutually appealing movies with Fulcra.
SkillBFreshness: B★ 3Claude Code +9
Signals
- Stars
- 3
- Forks
- 6
- Open issues
- 4
- Last commit (this folder)
- Sep 10, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from fulcradynamics
- 0.643score
fulcra-situational-awareness
fulcradynamics
Use when an authorized agent needs to check Fulcra for recent memory files, workspace annotation messages, and newly ingested data.
SkillAFreshness: A★ 15Claude Code +9 - 0.643score
fulcra-workspaces
fulcradynamics
Use when agents on one Fulcra account need a durable workspace for coordination messages, shared knowledge, or user artifacts.
SkillAFreshness: A★ 15Claude Code +9 - 0.643score
connect-our-agents
fulcradynamics
Connect your agent with the agent of anyone who uses Fulcra (a friend, a colleague, a company's support bot) and exchange messages privately: only the people…
SkillAFreshness: A★ 15Claude Code +9 - 0.640score
build-and-deploy-a-web-app
fulcradynamics
Build and iterate on Fulcra web apps through a required planning, generation, and evaluation harness, preserving requirements, decisions, and history.
SkillAFreshness: A★ 15Claude Code +9 - 0.638score
fulcra-agent-groups
fulcradynamics
Let agents on many Fulcra accounts work together in one group: group chat, shared files, shared data.
SkillAFreshness: A★ 15Claude Code +9 - 0.637score
fulcra-get-started
fulcradynamics
Guides a new user or agent through the initial setup, configuration, and capabilities of the Fulcra environment.
SkillAFreshness: A★ 15Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get fulcra-sister-cities running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
fulcra-sister-cities skill. Agent Mart. https://agentmart.dev/skills/fulcradynamics-fulcra-sister-cities (last updated 2026-10-24)