agents-city 0.3.0-beta.21
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/.claude-plugin/marketplace.json +16 -0
- package/LICENSE +202 -0
- package/NOTICE +5 -0
- package/README.es.md +2021 -0
- package/README.md +1999 -0
- package/benchmarks/committee/README.md +39 -0
- package/benchmarks/committee/metrics.py +51 -0
- package/benchmarks/committee/run.py +64 -0
- package/benchmarks/committee/traces/01-single.json +8 -0
- package/benchmarks/committee/traces/02-mesh.json +16 -0
- package/benchmarks/committee/traces/03-chair.json +15 -0
- package/benchmarks/latency/README.md +35 -0
- package/benchmarks/latency/fake-claude-cli.mjs +119 -0
- package/benchmarks/latency/fake-native-server.mjs +340 -0
- package/benchmarks/latency/fake-tui.py +91 -0
- package/benchmarks/latency/live.py +380 -0
- package/benchmarks/stress/README.md +20 -0
- package/benchmarks/stress/run.py +487 -0
- package/bin/agents +4 -0
- package/bin/agents-city.js +116 -0
- package/bin/benchmark +17 -0
- package/bin/bus +6 -0
- package/bin/cities +3 -0
- package/bin/city +86 -0
- package/bin/committee +6 -0
- package/bin/demo +200 -0
- package/bin/exit +5 -0
- package/bin/hall +73 -0
- package/bin/hall.html +426 -0
- package/bin/logs +3 -0
- package/bin/report.py +14 -0
- package/bin/reset +3 -0
- package/bin/road +3 -0
- package/bin/seat +10 -0
- package/bin/serve.py +1428 -0
- package/bin/setup.py +753 -0
- package/bin/skills +3 -0
- package/bin/test +131 -0
- package/bin/test-adapter.py +183 -0
- package/bin/test-admision.py +99 -0
- package/bin/test-avatar.py +58 -0
- package/bin/test-benchmark.py +40 -0
- package/bin/test-broker.py +334 -0
- package/bin/test-cage.py +206 -0
- package/bin/test-card.py +402 -0
- package/bin/test-channel.py +379 -0
- package/bin/test-cities.py +453 -0
- package/bin/test-claude-runtime.py +252 -0
- package/bin/test-committee.py +340 -0
- package/bin/test-contracts.py +544 -0
- package/bin/test-crecimiento.py +164 -0
- package/bin/test-demo.py +308 -0
- package/bin/test-doctor.py +106 -0
- package/bin/test-domains.py +151 -0
- package/bin/test-evidencia.py +50 -0
- package/bin/test-exit.py +128 -0
- package/bin/test-hall-protocol.py +93 -0
- package/bin/test-launch.py +169 -0
- package/bin/test-live-feed.py +508 -0
- package/bin/test-pairing.py +99 -0
- package/bin/test-parcels.py +283 -0
- package/bin/test-runtime-failures.py +252 -0
- package/bin/test-runtime-ui.py +488 -0
- package/bin/test-runtime.py +268 -0
- package/bin/test-rutas.py +80 -0
- package/bin/test-seat.py +1386 -0
- package/bin/test-security.py +150 -0
- package/bin/test-serve.py +1057 -0
- package/bin/test-stress.py +64 -0
- package/bin/test-widgets.py +143 -0
- package/bin/test-workspace.py +188 -0
- package/bin/testlib.py +95 -0
- package/bin/tokens.py +14 -0
- package/bus/scripts/deploy.sh +60 -0
- package/bus/scripts/mint-token.sh +68 -0
- package/bus/scripts/setup-dev.sh +79 -0
- package/bus/scripts/test-channel.ts +8 -0
- package/bus/scripts/test-hub.ts +266 -0
- package/bus/scripts/test-local.sh +40 -0
- package/bus/scripts/test-queue.ts +132 -0
- package/bus/worker/package-lock.json +1971 -0
- package/bus/worker/package.json +17 -0
- package/bus/worker/src/index.ts +485 -0
- package/bus/worker/tsconfig.json +13 -0
- package/bus/worker/wrangler.toml +32 -0
- package/city/oven/README.md +59 -0
- package/city/oven/collect.py +43 -0
- package/city/oven/oven.html +4 -0
- package/city/scripts/history.py +120 -0
- package/city/scripts/seed.py +442 -0
- package/city/web/assets/modelos/License.txt +28 -0
- package/city/web/assets/modelos/PROCEDENCIA.txt +3 -0
- package/city/web/assets/modelos/building-a.glb +0 -0
- package/city/web/assets/modelos/building-b.glb +0 -0
- package/city/web/assets/modelos/building-c.glb +0 -0
- package/city/web/assets/modelos/building-d.glb +0 -0
- package/city/web/assets/modelos/building-e.glb +0 -0
- package/city/web/assets/modelos/building-f.glb +0 -0
- package/city/web/assets/modelos/building-g.glb +0 -0
- package/city/web/assets/modelos/building-h.glb +0 -0
- package/city/web/assets/sprites/building-a.png +0 -0
- package/city/web/assets/sprites/building-b.png +0 -0
- package/city/web/assets/sprites/building-c.png +0 -0
- package/city/web/assets/sprites/building-d.png +0 -0
- package/city/web/assets/sprites/building-e.png +0 -0
- package/city/web/assets/sprites/building-f.png +0 -0
- package/city/web/assets/sprites/building-g.png +0 -0
- package/city/web/assets/sprites/building-h.png +0 -0
- package/city/web/assets/sprites/building-i.png +0 -0
- package/city/web/assets/sprites/building-j.png +0 -0
- package/city/web/assets/sprites/building-k.png +0 -0
- package/city/web/assets/sprites/building-l.png +0 -0
- package/city/web/assets/sprites/building-m.png +0 -0
- package/city/web/assets/sprites/building-n.png +0 -0
- package/city/web/assets/sprites/building-skyscraper-a.png +0 -0
- package/city/web/assets/sprites/building-skyscraper-b.png +0 -0
- package/city/web/assets/sprites/building-skyscraper-c.png +0 -0
- package/city/web/assets/sprites/building-skyscraper-d.png +0 -0
- package/city/web/assets/sprites/building-skyscraper-e.png +0 -0
- package/city/web/assets/sprites/catalogo.json +47 -0
- package/city/web/assets/sprites/detail-awning-wide.png +0 -0
- package/city/web/assets/sprites/detail-awning.png +0 -0
- package/city/web/assets/sprites/detail-overhang-wide.png +0 -0
- package/city/web/assets/sprites/detail-overhang.png +0 -0
- package/city/web/assets/sprites/detail-parasol-a.png +0 -0
- package/city/web/assets/sprites/detail-parasol-b.png +0 -0
- package/city/web/assets/sprites/low-detail-building-a.png +0 -0
- package/city/web/assets/sprites/low-detail-building-b.png +0 -0
- package/city/web/assets/sprites/low-detail-building-c.png +0 -0
- package/city/web/assets/sprites/low-detail-building-d.png +0 -0
- package/city/web/assets/sprites/low-detail-building-e.png +0 -0
- package/city/web/assets/sprites/low-detail-building-f.png +0 -0
- package/city/web/assets/sprites/low-detail-building-g.png +0 -0
- package/city/web/assets/sprites/low-detail-building-h.png +0 -0
- package/city/web/assets/sprites/low-detail-building-i.png +0 -0
- package/city/web/assets/sprites/low-detail-building-j.png +0 -0
- package/city/web/assets/sprites/low-detail-building-k.png +0 -0
- package/city/web/assets/sprites/low-detail-building-l.png +0 -0
- package/city/web/assets/sprites/low-detail-building-m.png +0 -0
- package/city/web/assets/sprites/low-detail-building-n.png +0 -0
- package/city/web/assets/sprites/low-detail-building-wide-a.png +0 -0
- package/city/web/assets/sprites/low-detail-building-wide-b.png +0 -0
- package/city/web/assets/sprites/medidas.json +248 -0
- package/city/web/dist/city.js +939 -0
- package/city/web/dist/index.html +294 -0
- package/city/web/dist/modelos/License.txt +28 -0
- package/city/web/dist/modelos/PROCEDENCIA.txt +3 -0
- package/city/web/dist/modelos/building-a.glb +0 -0
- package/city/web/dist/modelos/building-b.glb +0 -0
- package/city/web/dist/modelos/building-c.glb +0 -0
- package/city/web/dist/modelos/building-d.glb +0 -0
- package/city/web/dist/modelos/building-e.glb +0 -0
- package/city/web/dist/modelos/building-f.glb +0 -0
- package/city/web/dist/modelos/building-g.glb +0 -0
- package/city/web/dist/modelos/building-h.glb +0 -0
- package/city/web/dist/sprites/building-a.png +0 -0
- package/city/web/dist/sprites/building-b.png +0 -0
- package/city/web/dist/sprites/building-c.png +0 -0
- package/city/web/dist/sprites/building-d.png +0 -0
- package/city/web/dist/sprites/building-e.png +0 -0
- package/city/web/dist/sprites/building-f.png +0 -0
- package/city/web/dist/sprites/building-g.png +0 -0
- package/city/web/dist/sprites/building-h.png +0 -0
- package/city/web/dist/sprites/building-i.png +0 -0
- package/city/web/dist/sprites/building-j.png +0 -0
- package/city/web/dist/sprites/building-k.png +0 -0
- package/city/web/dist/sprites/building-l.png +0 -0
- package/city/web/dist/sprites/building-m.png +0 -0
- package/city/web/dist/sprites/building-n.png +0 -0
- package/city/web/dist/sprites/building-skyscraper-a.png +0 -0
- package/city/web/dist/sprites/building-skyscraper-b.png +0 -0
- package/city/web/dist/sprites/building-skyscraper-c.png +0 -0
- package/city/web/dist/sprites/building-skyscraper-d.png +0 -0
- package/city/web/dist/sprites/building-skyscraper-e.png +0 -0
- package/city/web/dist/sprites/catalogo.json +47 -0
- package/city/web/dist/sprites/detail-awning-wide.png +0 -0
- package/city/web/dist/sprites/detail-awning.png +0 -0
- package/city/web/dist/sprites/detail-overhang-wide.png +0 -0
- package/city/web/dist/sprites/detail-overhang.png +0 -0
- package/city/web/dist/sprites/detail-parasol-a.png +0 -0
- package/city/web/dist/sprites/detail-parasol-b.png +0 -0
- package/city/web/dist/sprites/low-detail-building-a.png +0 -0
- package/city/web/dist/sprites/low-detail-building-b.png +0 -0
- package/city/web/dist/sprites/low-detail-building-c.png +0 -0
- package/city/web/dist/sprites/low-detail-building-d.png +0 -0
- package/city/web/dist/sprites/low-detail-building-e.png +0 -0
- package/city/web/dist/sprites/low-detail-building-f.png +0 -0
- package/city/web/dist/sprites/low-detail-building-g.png +0 -0
- package/city/web/dist/sprites/low-detail-building-h.png +0 -0
- package/city/web/dist/sprites/low-detail-building-i.png +0 -0
- package/city/web/dist/sprites/low-detail-building-j.png +0 -0
- package/city/web/dist/sprites/low-detail-building-k.png +0 -0
- package/city/web/dist/sprites/low-detail-building-l.png +0 -0
- package/city/web/dist/sprites/low-detail-building-m.png +0 -0
- package/city/web/dist/sprites/low-detail-building-n.png +0 -0
- package/city/web/dist/sprites/low-detail-building-wide-a.png +0 -0
- package/city/web/dist/sprites/low-detail-building-wide-b.png +0 -0
- package/city/web/dist/sprites/medidas.json +248 -0
- package/city/web/dist-hall/hall.js +264 -0
- package/city/web/index.html +294 -0
- package/city/web/package.json +18 -0
- package/city/web/sella.py +21 -0
- package/city/web/src/activity-actors.ts +47 -0
- package/city/web/src/activity.ts +172 -0
- package/city/web/src/ayuntamiento.ts +580 -0
- package/city/web/src/draw.ts +640 -0
- package/city/web/src/game-speech.ts +79 -0
- package/city/web/src/hall.ts +1867 -0
- package/city/web/src/main.ts +2225 -0
- package/city/web/src/oven.ts +124 -0
- package/city/web/src/people.ts +244 -0
- package/city/web/src/presencia.ts +193 -0
- package/city/web/src/puertas.ts +180 -0
- package/city/web/src/repo-roles.ts +59 -0
- package/city/worker/package.json +16 -0
- package/city/worker/schema.sql +117 -0
- package/city/worker/src/index.ts +702 -0
- package/city/worker/src/square.ts +218 -0
- package/city/worker/wrangler.toml +58 -0
- package/demo/ada.md +50 -0
- package/demo/bruno.md +62 -0
- package/demo/camila.md +56 -0
- package/demo/city/ada.md +40 -0
- package/demo/city/city.yml +8 -0
- package/demo/city/parcels.yml +15 -0
- package/demo/city/roads.json +4 -0
- package/demo/city/units.yml +10 -0
- package/demo/clinica/city.yml +8 -0
- package/demo/clinica/parcels.yml +15 -0
- package/demo/clinica/roads.json +4 -0
- package/demo/clinica/units.yml +9 -0
- package/demo/clinica/vera.md +46 -0
- package/demo/dante.md +54 -0
- package/demo/despacho/city.yml +8 -0
- package/demo/despacho/marta.md +46 -0
- package/demo/despacho/parcels.yml +15 -0
- package/demo/despacho/roads.json +4 -0
- package/demo/despacho/units.yml +9 -0
- package/demo/elsa.md +50 -0
- package/demo/farid.md +52 -0
- package/demo/greta.md +50 -0
- package/demo/hugo.md +49 -0
- package/demo/iris.md +49 -0
- package/demo/jonas.md +51 -0
- package/demo/kira.md +51 -0
- package/demo/luca.md +49 -0
- package/demo/parcels.yml +92 -0
- package/demo/seed.py +20 -0
- package/demo/show.py +161 -0
- package/demo/stories.py +824 -0
- package/demo/units.yml +33 -0
- package/docs/agents-first.md +99 -0
- package/docs/glossary.md +55 -0
- package/docs/map-live-layers.md +73 -0
- package/docs/security.md +231 -0
- package/docs/self-host.md +151 -0
- package/docs/testing.md +205 -0
- package/package.json +73 -0
- package/plugin/.claude-plugin/plugin.json +62 -0
- package/plugin/.mcp.json +15 -0
- package/plugin/channel/activity-cli.ts +16 -0
- package/plugin/channel/adapter-prompts.ts +113 -0
- package/plugin/channel/adapter.js +4292 -0
- package/plugin/channel/adapter.ts +133 -0
- package/plugin/channel/bus.js +20188 -0
- package/plugin/channel/bus.ts +131 -0
- package/plugin/channel/city-config.ts +125 -0
- package/plugin/channel/claude-channel.ts +58 -0
- package/plugin/channel/cli-args.ts +75 -0
- package/plugin/channel/client.js +4200 -0
- package/plugin/channel/client.ts +38 -0
- package/plugin/channel/committee/activity.ts +256 -0
- package/plugin/channel/committee/collection.ts +154 -0
- package/plugin/channel/committee/decision.ts +175 -0
- package/plugin/channel/committee/floor.ts +135 -0
- package/plugin/channel/committee/guards.ts +30 -0
- package/plugin/channel/committee/history.ts +38 -0
- package/plugin/channel/committee/render.ts +102 -0
- package/plugin/channel/committee/service.ts +72 -0
- package/plugin/channel/committee/storage.ts +92 -0
- package/plugin/channel/committee/types.ts +163 -0
- package/plugin/channel/committee/view.ts +63 -0
- package/plugin/channel/committee-cli.ts +109 -0
- package/plugin/channel/delivery-metrics.ts +61 -0
- package/plugin/channel/delivery-queue.ts +118 -0
- package/plugin/channel/hub/activity-controller.ts +72 -0
- package/plugin/channel/hub/activity-feed.ts +169 -0
- package/plugin/channel/hub/committee-controller.ts +60 -0
- package/plugin/channel/hub/connections.ts +48 -0
- package/plugin/channel/hub/diagnostics.ts +67 -0
- package/plugin/channel/hub/envelope-validity.ts +109 -0
- package/plugin/channel/hub/envelopes.ts +66 -0
- package/plugin/channel/hub/lifecycle.ts +91 -0
- package/plugin/channel/hub/local-roads.ts +89 -0
- package/plugin/channel/hub/remote-roads.ts +165 -0
- package/plugin/channel/hub/road-controller.ts +99 -0
- package/plugin/channel/hub-client.ts +149 -0
- package/plugin/channel/local-hub.js +5995 -0
- package/plugin/channel/local-hub.ts +349 -0
- package/plugin/channel/map-reporter.ts +48 -0
- package/plugin/channel/package-lock.json +1731 -0
- package/plugin/channel/package.json +19 -0
- package/plugin/channel/protocol.ts +98 -0
- package/plugin/channel/road-cli.ts +18 -0
- package/plugin/channel/run.sh +15 -0
- package/plugin/channel/runtime/claude.ts +458 -0
- package/plugin/channel/runtime/codex-config.ts +77 -0
- package/plugin/channel/runtime/codex.ts +669 -0
- package/plugin/channel/runtime/command.ts +62 -0
- package/plugin/channel/runtime/factory.ts +15 -0
- package/plugin/channel/runtime/json-rpc.ts +154 -0
- package/plugin/channel/runtime/kimi.ts +277 -0
- package/plugin/channel/runtime/opencode.ts +248 -0
- package/plugin/channel/runtime/process.ts +84 -0
- package/plugin/channel/runtime/types.ts +45 -0
- package/plugin/channel/runtime-files.ts +73 -0
- package/plugin/channel/runtime-gateway.js +6396 -0
- package/plugin/channel/runtime-gateway.ts +358 -0
- package/plugin/channel/runtime-metrics.ts +52 -0
- package/plugin/channel/runtime-subscription.ts +180 -0
- package/plugin/channel/terminal-delivery.ts +131 -0
- package/plugin/channel/untrusted.ts +60 -0
- package/plugin/commands/committee.md +31 -0
- package/plugin/commands/exit.md +32 -0
- package/plugin/commands/goals.md +20 -0
- package/plugin/commands/join.md +18 -0
- package/plugin/commands/notice.md +20 -0
- package/plugin/commands/propose.md +19 -0
- package/plugin/commands/round.md +17 -0
- package/plugin/commands/session.md +22 -0
- package/plugin/commands/settings.md +25 -0
- package/plugin/commands/setup.md +21 -0
- package/plugin/commands/team.md +23 -0
- package/plugin/domains/custom.md +27 -0
- package/plugin/domains/finance.md +31 -0
- package/plugin/domains/healthcare.md +34 -0
- package/plugin/domains/legal.md +31 -0
- package/plugin/domains/marketing.md +33 -0
- package/plugin/domains/operations.md +31 -0
- package/plugin/domains/research.md +32 -0
- package/plugin/domains/sales.md +30 -0
- package/plugin/domains/software.md +37 -0
- package/plugin/hooks/activity.sh +6 -0
- package/plugin/hooks/digging.sh +68 -0
- package/plugin/hooks/growth.sh +42 -0
- package/plugin/hooks/hooks.json +106 -0
- package/plugin/hooks/notice-on-pr.sh +35 -0
- package/plugin/hooks/notice-on-stop.sh +80 -0
- package/plugin/hooks/notice-pending.sh +58 -0
- package/plugin/hooks/solo-en-ciudad.sh +23 -0
- package/plugin/hooks/tokens.sh +47 -0
- package/plugin/roles/examples/account-executive.md +25 -0
- package/plugin/roles/examples/ai-manager.md +34 -0
- package/plugin/roles/examples/associate.md +24 -0
- package/plugin/roles/examples/brand-lead.md +20 -0
- package/plugin/roles/examples/cfo.md +20 -0
- package/plugin/roles/examples/city-lead.md +25 -0
- package/plugin/roles/examples/clinical-director.md +26 -0
- package/plugin/roles/examples/clinical-ops.md +25 -0
- package/plugin/roles/examples/clinician.md +25 -0
- package/plugin/roles/examples/compliance.md +27 -0
- package/plugin/roles/examples/content.md +24 -0
- package/plugin/roles/examples/controller.md +27 -0
- package/plugin/roles/examples/cpto.md +41 -0
- package/plugin/roles/examples/customer-success.md +25 -0
- package/plugin/roles/examples/data-engineer.md +37 -0
- package/plugin/roles/examples/data.md +60 -0
- package/plugin/roles/examples/dev.md +37 -0
- package/plugin/roles/examples/devops.md +39 -0
- package/plugin/roles/examples/enablement.md +24 -0
- package/plugin/roles/examples/ethics.md +24 -0
- package/plugin/roles/examples/fin-analytics.md +27 -0
- package/plugin/roles/examples/health-compliance.md +25 -0
- package/plugin/roles/examples/health-data.md +26 -0
- package/plugin/roles/examples/knowledge.md +25 -0
- package/plugin/roles/examples/lifecycle.md +26 -0
- package/plugin/roles/examples/llm-engineer.md +34 -0
- package/plugin/roles/examples/managing-partner.md +20 -0
- package/plugin/roles/examples/methods.md +23 -0
- package/plugin/roles/examples/operations-lead.md +23 -0
- package/plugin/roles/examples/ops.md +24 -0
- package/plugin/roles/examples/patient-safety.md +26 -0
- package/plugin/roles/examples/performance.md +27 -0
- package/plugin/roles/examples/po.md +36 -0
- package/plugin/roles/examples/process-owner.md +23 -0
- package/plugin/roles/examples/product-design.md +39 -0
- package/plugin/roles/examples/program-manager.md +24 -0
- package/plugin/roles/examples/quality.md +25 -0
- package/plugin/roles/examples/research-director.md +24 -0
- package/plugin/roles/examples/research-ops.md +25 -0
- package/plugin/roles/examples/researcher.md +25 -0
- package/plugin/roles/examples/revenue-lead.md +25 -0
- package/plugin/roles/examples/revops.md +26 -0
- package/plugin/roles/examples/seo.md +27 -0
- package/plugin/roles/examples/specialist.md +24 -0
- package/plugin/scripts/admision.py +165 -0
- package/plugin/scripts/apaga.py +232 -0
- package/plugin/scripts/avatar.py +211 -0
- package/plugin/scripts/broker.py +531 -0
- package/plugin/scripts/cage.py +252 -0
- package/plugin/scripts/capabilities.py +197 -0
- package/plugin/scripts/card.py +312 -0
- package/plugin/scripts/cities.py +520 -0
- package/plugin/scripts/city-env.sh +90 -0
- package/plugin/scripts/city-runtime.sh +87 -0
- package/plugin/scripts/city-session.sh +526 -0
- package/plugin/scripts/city_env.py +67 -0
- package/plugin/scripts/crecimiento.py +140 -0
- package/plugin/scripts/deliberations.py +48 -0
- package/plugin/scripts/doctor.py +172 -0
- package/plugin/scripts/domains.py +201 -0
- package/plugin/scripts/evidencia.py +64 -0
- package/plugin/scripts/find-repos.sh +111 -0
- package/plugin/scripts/gh.py +159 -0
- package/plugin/scripts/hall_protocol.py +147 -0
- package/plugin/scripts/hook_activity.py +139 -0
- package/plugin/scripts/launch.py +94 -0
- package/plugin/scripts/logs.py +98 -0
- package/plugin/scripts/pairing.py +185 -0
- package/plugin/scripts/parcels.py +132 -0
- package/plugin/scripts/read-card.py +51 -0
- package/plugin/scripts/report.py +201 -0
- package/plugin/scripts/reset.py +180 -0
- package/plugin/scripts/roads.py +230 -0
- package/plugin/scripts/roles.py +274 -0
- package/plugin/scripts/runtime_log.py +69 -0
- package/plugin/scripts/runtime_processes.py +132 -0
- package/plugin/scripts/rutas.py +83 -0
- package/plugin/scripts/seat.py +1349 -0
- package/plugin/scripts/tokens.py +194 -0
- package/plugin/scripts/trust-repos.py +59 -0
- package/plugin/scripts/ui.py +280 -0
- package/plugin/scripts/units.py +80 -0
- package/plugin/scripts/workspace.py +364 -0
- package/plugin/skills/city/SKILL.md +191 -0
- package/templates/blank.md +39 -0
- package/templates/finance.md +44 -0
- package/templates/legal.md +45 -0
- package/templates/marketing.md +48 -0
- package/templates/product.md +45 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
user: marta
|
|
3
|
+
name: Marta Costa
|
|
4
|
+
role: cpto
|
|
5
|
+
agent: marta/seat
|
|
6
|
+
agents: [contratos, litigios, archivo, fiscal, recepcion]
|
|
7
|
+
kind.contratos: knowledge
|
|
8
|
+
kind.litigios: coordinator
|
|
9
|
+
kind.archivo: knowledge
|
|
10
|
+
kind.fiscal: knowledge
|
|
11
|
+
kind.recepcion: coordinator
|
|
12
|
+
role.contratos: redaccion
|
|
13
|
+
role.litigios: plazos
|
|
14
|
+
role.archivo: expedientes
|
|
15
|
+
role.fiscal: impuestos
|
|
16
|
+
role.recepcion: agenda
|
|
17
|
+
runs.seat: claude
|
|
18
|
+
runs.contratos: claude
|
|
19
|
+
runs.litigios: claude
|
|
20
|
+
runs.archivo: claude
|
|
21
|
+
runs.fiscal: claude
|
|
22
|
+
runs.recepcion: claude
|
|
23
|
+
goals_defined: true
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# Marta Costa — Costa & Ley, socia directora
|
|
27
|
+
|
|
28
|
+
Marta chairs the firm. No agent here is a repository: they are knowledge and
|
|
29
|
+
coordination agents — the agents-first model, where a repo is just one thing an
|
|
30
|
+
agent may mount and none of these mounts one.
|
|
31
|
+
|
|
32
|
+
## Current goal
|
|
33
|
+
|
|
34
|
+
### O1 — Ningún plazo se pierde y ningún cliente se entera tarde
|
|
35
|
+
- **What**: Presentar en plazo o avisar el mismo día con un plan B concreto.
|
|
36
|
+
- **How it is measured**: expedientes presentados a tiempo y llamadas hechas.
|
|
37
|
+
- **Measure**: `demo — scripted evidence over the local WebSocket committee`
|
|
38
|
+
- **Baseline**: sustos de última hora resueltos a base de noches
|
|
39
|
+
- **Target**: el caos absorbido de día, con horas y nombres
|
|
40
|
+
- **By when**: demo day
|
|
41
|
+
- **State**: in progress
|
|
42
|
+
|
|
43
|
+
## Round history
|
|
44
|
+
|
|
45
|
+
The guided committee writes its complete act here at runtime. The packaged
|
|
46
|
+
fixture is copied to a temporary directory first, so this file stays untouched.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Five agents, five houses. The scripted committee invites only three, so
|
|
2
|
+
# abstention and bounded participation remain believable — same as Aurora.
|
|
3
|
+
repos:
|
|
4
|
+
contratos:
|
|
5
|
+
- ruta: "" ; unidad: civil ; nombre: "Contratos"
|
|
6
|
+
litigios:
|
|
7
|
+
- ruta: "" ; unidad: civil ; nombre: "Litigios"
|
|
8
|
+
archivo:
|
|
9
|
+
- ruta: "" ; unidad: gestion ; nombre: "Archivo"
|
|
10
|
+
fiscal:
|
|
11
|
+
- ruta: "" ; unidad: fiscalidad ; nombre: "Fiscal"
|
|
12
|
+
recepcion:
|
|
13
|
+
- ruta: "" ; unidad: gestion ; nombre: "Recepción"
|
|
14
|
+
|
|
15
|
+
lab: []
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# A small law firm: three districts anyone can read at a glance.
|
|
2
|
+
units:
|
|
3
|
+
- id: civil ; name: Derecho Civil ; color: e2604f ; order: 1
|
|
4
|
+
- id: fiscalidad ; name: Fiscal ; color: f5c451 ; order: 2
|
|
5
|
+
- id: gestion ; name: Gestión ; color: 8f7ae6 ; order: 3
|
|
6
|
+
|
|
7
|
+
special:
|
|
8
|
+
- id: lab ; name: Lab ; color: 8fb8c9 ; order: 90
|
|
9
|
+
- id: none ; name: Shared ; color: c8b48a ; order: 99
|
package/demo/elsa.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
user: elsa
|
|
3
|
+
name: Elsa Marín
|
|
4
|
+
role: po
|
|
5
|
+
agent: elsa/po
|
|
6
|
+
repos: [nova, store-service]
|
|
7
|
+
covers: [all]
|
|
8
|
+
goals_defined: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Elsa Marín
|
|
12
|
+
|
|
13
|
+
Role: **po** — in the city, the **site manager**. The domain is in `roles/po.md`.
|
|
14
|
+
|
|
15
|
+
## Repos
|
|
16
|
+
|
|
17
|
+
Answers for: `nova`, `store-service`.
|
|
18
|
+
|
|
19
|
+
## Current goals
|
|
20
|
+
|
|
21
|
+
### O1 — A release note nobody has to translate
|
|
22
|
+
- **What**: A release note nobody has to translate.
|
|
23
|
+
- **How it is measured**: Releases whose note names the player-visible change
|
|
24
|
+
- **Measure**: `manual — Elsa reads the last ten notes and marks those a player would understand`
|
|
25
|
+
- **Baseline**: 4 of 10 (2026-07-02)
|
|
26
|
+
- **Target**: 9 of 10
|
|
27
|
+
- **By when**: Q4 2026
|
|
28
|
+
- **State**: in progress
|
|
29
|
+
|
|
30
|
+
<!-- Format, one block per goal:
|
|
31
|
+
|
|
32
|
+
### O1 — <short title>
|
|
33
|
+
- **What**: what has to be achieved, in one sentence.
|
|
34
|
+
- **How it is measured**: the concrete signal that says whether it is going well.
|
|
35
|
+
- **Measure**: the command or query returning that signal, runnable as written.
|
|
36
|
+
If the signal is a judgement and not a number: `manual — <who looks at what, and
|
|
37
|
+
how often>`.
|
|
38
|
+
- **Baseline**: what the measure returned the day it was agreed, with the date.
|
|
39
|
+
- **Target**: the value to reach.
|
|
40
|
+
- **By when**: a date or a quarter.
|
|
41
|
+
- **State**: not started | in progress | at risk | done
|
|
42
|
+
|
|
43
|
+
The measure gets run before the goal is agreed: if it does not work, what is
|
|
44
|
+
missing is building it, and that is work. See /city:goals.
|
|
45
|
+
|
|
46
|
+
-->
|
|
47
|
+
|
|
48
|
+
## Round history
|
|
49
|
+
|
|
50
|
+
Rounds leave their summary here, most recent first.
|
package/demo/farid.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
user: farid
|
|
3
|
+
name: Farid Nasser
|
|
4
|
+
role: llm-engineer
|
|
5
|
+
agent: farid/llm
|
|
6
|
+
repos: []
|
|
7
|
+
covers: [all]
|
|
8
|
+
goals_defined: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Farid Nasser
|
|
12
|
+
|
|
13
|
+
Role: **llm-engineer** — in the city, the **machinist**. The domain is in `roles/llm-engineer.md`.
|
|
14
|
+
|
|
15
|
+
## Repos
|
|
16
|
+
|
|
17
|
+
No repos of their own: cross-cutting roles do not own any, they answer for one property of all of them.
|
|
18
|
+
|
|
19
|
+
## Current goals
|
|
20
|
+
|
|
21
|
+
### O1 — Cost per NPC dialogue drops 60% with no quality loss
|
|
22
|
+
- **What**: Cost per NPC dialogue drops 60% with no quality loss.
|
|
23
|
+
- **How it is measured**: average cost per conversation and hit rate over the 40 reference cases.
|
|
24
|
+
- **Measure**: `python evals/npc_dialog.py --report`
|
|
25
|
+
- **Baseline**: $0.021 and 86% (2026-02-01)
|
|
26
|
+
- **Target**: $0.008 and ≥86%
|
|
27
|
+
- **By when**: Q2 2026
|
|
28
|
+
- **State**: in progress
|
|
29
|
+
|
|
30
|
+
_Last edited: 2026-02-14 by ada._
|
|
31
|
+
|
|
32
|
+
<!-- Format, one block per goal:
|
|
33
|
+
|
|
34
|
+
### O1 — <short title>
|
|
35
|
+
- **What**: what has to be achieved, in one sentence.
|
|
36
|
+
- **How it is measured**: the concrete signal that says whether it is going well.
|
|
37
|
+
- **Measure**: the command or query returning that signal, runnable as written.
|
|
38
|
+
If the signal is a judgement and not a number: `manual — <who looks at what, and
|
|
39
|
+
how often>`.
|
|
40
|
+
- **Baseline**: what the measure returned the day it was agreed, with the date.
|
|
41
|
+
- **Target**: the value to reach.
|
|
42
|
+
- **By when**: a date or a quarter.
|
|
43
|
+
- **State**: not started | in progress | at risk | done
|
|
44
|
+
|
|
45
|
+
The measure gets run before the goal is agreed: if it does not work, what is
|
|
46
|
+
missing is building it, and that is work. See /city:goals.
|
|
47
|
+
|
|
48
|
+
-->
|
|
49
|
+
|
|
50
|
+
## Round history
|
|
51
|
+
|
|
52
|
+
Rounds leave their summary here, most recent first.
|
package/demo/greta.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
user: greta
|
|
3
|
+
name: Greta Lindqvist
|
|
4
|
+
role: ai-manager
|
|
5
|
+
agent: greta/ai
|
|
6
|
+
repos: [lab-npc-brains, telemetry-collector, nova]
|
|
7
|
+
covers: [all]
|
|
8
|
+
goals_defined: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Greta Lindqvist
|
|
12
|
+
|
|
13
|
+
Role: **ai-manager** — in the city, the **works inspector**. The domain is in `roles/ai-manager.md`.
|
|
14
|
+
|
|
15
|
+
## Repos
|
|
16
|
+
|
|
17
|
+
Answers for: `lab-npc-brains`, `telemetry-collector`, `nova`.
|
|
18
|
+
|
|
19
|
+
## Current goals
|
|
20
|
+
|
|
21
|
+
### O1 — Agents ask before they touch somebody else's property
|
|
22
|
+
- **What**: Agents ask before they touch somebody else's property.
|
|
23
|
+
- **How it is measured**: Notices sent before the merge, not after
|
|
24
|
+
- **Measure**: `select count(*) from evento where tipo='notice'`
|
|
25
|
+
- **Baseline**: 31 last month, 12 after the merge (2026-07-01)
|
|
26
|
+
- **Target**: none after the merge
|
|
27
|
+
- **By when**: Q4 2026
|
|
28
|
+
- **State**: in progress
|
|
29
|
+
|
|
30
|
+
<!-- Format, one block per goal:
|
|
31
|
+
|
|
32
|
+
### O1 — <short title>
|
|
33
|
+
- **What**: what has to be achieved, in one sentence.
|
|
34
|
+
- **How it is measured**: the concrete signal that says whether it is going well.
|
|
35
|
+
- **Measure**: the command or query returning that signal, runnable as written.
|
|
36
|
+
If the signal is a judgement and not a number: `manual — <who looks at what, and
|
|
37
|
+
how often>`.
|
|
38
|
+
- **Baseline**: what the measure returned the day it was agreed, with the date.
|
|
39
|
+
- **Target**: the value to reach.
|
|
40
|
+
- **By when**: a date or a quarter.
|
|
41
|
+
- **State**: not started | in progress | at risk | done
|
|
42
|
+
|
|
43
|
+
The measure gets run before the goal is agreed: if it does not work, what is
|
|
44
|
+
missing is building it, and that is work. See /city:goals.
|
|
45
|
+
|
|
46
|
+
-->
|
|
47
|
+
|
|
48
|
+
## Round history
|
|
49
|
+
|
|
50
|
+
Rounds leave their summary here, most recent first.
|
package/demo/hugo.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
user: hugo
|
|
3
|
+
name: Hugo Beltrán
|
|
4
|
+
role: dev
|
|
5
|
+
agent: hugo/dev
|
|
6
|
+
repos: [nova, engine-core, asset-pipeline, launcher]
|
|
7
|
+
goals_defined: true
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Hugo Beltrán
|
|
11
|
+
|
|
12
|
+
Role: **dev** — in the city, the **master builder**. The domain is in `roles/dev.md`.
|
|
13
|
+
|
|
14
|
+
## Repos
|
|
15
|
+
|
|
16
|
+
Answers for: `nova`, `engine-core`, `asset-pipeline`, `launcher`.
|
|
17
|
+
|
|
18
|
+
## Current goals
|
|
19
|
+
|
|
20
|
+
### O1 — The engine stops being the thing everybody waits for
|
|
21
|
+
- **What**: The engine stops being the thing everybody waits for.
|
|
22
|
+
- **How it is measured**: Open PRs on engine-core older than two weeks
|
|
23
|
+
- **Measure**: `gh pr list --repo aurora/engine-core --search 'created:<2026-08-12' --json number --jq length`
|
|
24
|
+
- **Baseline**: 7 stale (2026-08-01)
|
|
25
|
+
- **Target**: 1 or none
|
|
26
|
+
- **By when**: Q4 2026
|
|
27
|
+
- **State**: at risk
|
|
28
|
+
|
|
29
|
+
<!-- Format, one block per goal:
|
|
30
|
+
|
|
31
|
+
### O1 — <short title>
|
|
32
|
+
- **What**: what has to be achieved, in one sentence.
|
|
33
|
+
- **How it is measured**: the concrete signal that says whether it is going well.
|
|
34
|
+
- **Measure**: the command or query returning that signal, runnable as written.
|
|
35
|
+
If the signal is a judgement and not a number: `manual — <who looks at what, and
|
|
36
|
+
how often>`.
|
|
37
|
+
- **Baseline**: what the measure returned the day it was agreed, with the date.
|
|
38
|
+
- **Target**: the value to reach.
|
|
39
|
+
- **By when**: a date or a quarter.
|
|
40
|
+
- **State**: not started | in progress | at risk | done
|
|
41
|
+
|
|
42
|
+
The measure gets run before the goal is agreed: if it does not work, what is
|
|
43
|
+
missing is building it, and that is work. See /city:goals.
|
|
44
|
+
|
|
45
|
+
-->
|
|
46
|
+
|
|
47
|
+
## Round history
|
|
48
|
+
|
|
49
|
+
Rounds leave their summary here, most recent first.
|
package/demo/iris.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
user: iris
|
|
3
|
+
name: Iris Cabrera
|
|
4
|
+
role: dev
|
|
5
|
+
agent: iris/dev
|
|
6
|
+
repos: [puzzle-quest, farm-tycoon, store-service, ads-mediation]
|
|
7
|
+
goals_defined: true
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Iris Cabrera
|
|
11
|
+
|
|
12
|
+
Role: **dev** — in the city, the **master builder**. The domain is in `roles/dev.md`.
|
|
13
|
+
|
|
14
|
+
## Repos
|
|
15
|
+
|
|
16
|
+
Answers for: `puzzle-quest`, `farm-tycoon`, `store-service`, `ads-mediation`.
|
|
17
|
+
|
|
18
|
+
## Current goals
|
|
19
|
+
|
|
20
|
+
### O1 — A crash a player hits twice never survives a week
|
|
21
|
+
- **What**: A crash a player hits twice never survives a week.
|
|
22
|
+
- **How it is measured**: Crash groups over 100 sessions open more than seven days
|
|
23
|
+
- **Measure**: `manual — Iris reads the crash board every Monday and counts them`
|
|
24
|
+
- **Baseline**: 6 groups (2026-06-08)
|
|
25
|
+
- **Target**: 0
|
|
26
|
+
- **By when**: Q4 2026
|
|
27
|
+
- **State**: in progress
|
|
28
|
+
|
|
29
|
+
<!-- Format, one block per goal:
|
|
30
|
+
|
|
31
|
+
### O1 — <short title>
|
|
32
|
+
- **What**: what has to be achieved, in one sentence.
|
|
33
|
+
- **How it is measured**: the concrete signal that says whether it is going well.
|
|
34
|
+
- **Measure**: the command or query returning that signal, runnable as written.
|
|
35
|
+
If the signal is a judgement and not a number: `manual — <who looks at what, and
|
|
36
|
+
how often>`.
|
|
37
|
+
- **Baseline**: what the measure returned the day it was agreed, with the date.
|
|
38
|
+
- **Target**: the value to reach.
|
|
39
|
+
- **By when**: a date or a quarter.
|
|
40
|
+
- **State**: not started | in progress | at risk | done
|
|
41
|
+
|
|
42
|
+
The measure gets run before the goal is agreed: if it does not work, what is
|
|
43
|
+
missing is building it, and that is work. See /city:goals.
|
|
44
|
+
|
|
45
|
+
-->
|
|
46
|
+
|
|
47
|
+
## Round history
|
|
48
|
+
|
|
49
|
+
Rounds leave their summary here, most recent first.
|
package/demo/jonas.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
user: jonas
|
|
3
|
+
name: Jonas Weber
|
|
4
|
+
role: dev
|
|
5
|
+
agent: jonas/dev
|
|
6
|
+
repos: [rift-runner, netcode, controller-sdk, crash-reporter]
|
|
7
|
+
goals_defined: true
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Jonas Weber
|
|
11
|
+
|
|
12
|
+
Role: **dev** — in the city, the **master builder**. The domain is in `roles/dev.md`.
|
|
13
|
+
|
|
14
|
+
## Repos
|
|
15
|
+
|
|
16
|
+
Answers for: `rift-runner`, `netcode`, `controller-sdk`, `crash-reporter`.
|
|
17
|
+
|
|
18
|
+
## Current goals
|
|
19
|
+
|
|
20
|
+
### O1 — Networked matches survive 200 ms latency with no rubber-banding
|
|
21
|
+
- **What**: Networked matches survive 200 ms latency with no rubber-banding.
|
|
22
|
+
- **How it is measured**: matches with more than two visible jumps per minute, in the network simulator.
|
|
23
|
+
- **Measure**: `python tools/netsim.py --latency 200 --report`
|
|
24
|
+
- **Baseline**: 31% of matches (2026-01-12)
|
|
25
|
+
- **Target**: < 5%
|
|
26
|
+
- **By when**: Q1 2026
|
|
27
|
+
- **State**: in progress
|
|
28
|
+
|
|
29
|
+
_Last edited: 2026-02-14 by ada._
|
|
30
|
+
|
|
31
|
+
<!-- Format, one block per goal:
|
|
32
|
+
|
|
33
|
+
### O1 — <short title>
|
|
34
|
+
- **What**: what has to be achieved, in one sentence.
|
|
35
|
+
- **How it is measured**: the concrete signal that says whether it is going well.
|
|
36
|
+
- **Measure**: the command or query returning that signal, runnable as written.
|
|
37
|
+
If the signal is a judgement and not a number: `manual — <who looks at what, and
|
|
38
|
+
how often>`.
|
|
39
|
+
- **Baseline**: what the measure returned the day it was agreed, with the date.
|
|
40
|
+
- **Target**: the value to reach.
|
|
41
|
+
- **By when**: a date or a quarter.
|
|
42
|
+
- **State**: not started | in progress | at risk | done
|
|
43
|
+
|
|
44
|
+
The measure gets run before the goal is agreed: if it does not work, what is
|
|
45
|
+
missing is building it, and that is work. See /city:goals.
|
|
46
|
+
|
|
47
|
+
-->
|
|
48
|
+
|
|
49
|
+
## Round history
|
|
50
|
+
|
|
51
|
+
Rounds leave their summary here, most recent first.
|
package/demo/kira.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
user: kira
|
|
3
|
+
name: Kira Sato
|
|
4
|
+
role: dev
|
|
5
|
+
agent: kira/dev
|
|
6
|
+
repos: [telemetry-collector, dbt-models, etl-jobs, player-dashboards, ab-testing]
|
|
7
|
+
goals_defined: true
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Kira Sato
|
|
11
|
+
|
|
12
|
+
Role: **dev** — in the city, the **master builder**. The domain is in `roles/dev.md`.
|
|
13
|
+
|
|
14
|
+
## Repos
|
|
15
|
+
|
|
16
|
+
Answers for: `telemetry-collector`, `dbt-models`, `etl-jobs`, `player-dashboards`, `ab-testing`.
|
|
17
|
+
|
|
18
|
+
## Current goals
|
|
19
|
+
|
|
20
|
+
### O1 — No telemetry event is lost on deploy
|
|
21
|
+
- **What**: No telemetry event is lost on deploy.
|
|
22
|
+
- **How it is measured**: events received against events sent, in the deploy window.
|
|
23
|
+
- **Measure**: `python tools/telemetry_audit.py --window deploy`
|
|
24
|
+
- **Baseline**: 97.3% (2026-02-03)
|
|
25
|
+
- **Target**: ≥ 99.9%
|
|
26
|
+
- **By when**: Q2 2026
|
|
27
|
+
- **State**: in progress
|
|
28
|
+
|
|
29
|
+
_Last edited: 2026-02-14 by ada._
|
|
30
|
+
|
|
31
|
+
<!-- Format, one block per goal:
|
|
32
|
+
|
|
33
|
+
### O1 — <short title>
|
|
34
|
+
- **What**: what has to be achieved, in one sentence.
|
|
35
|
+
- **How it is measured**: the concrete signal that says whether it is going well.
|
|
36
|
+
- **Measure**: the command or query returning that signal, runnable as written.
|
|
37
|
+
If the signal is a judgement and not a number: `manual — <who looks at what, and
|
|
38
|
+
how often>`.
|
|
39
|
+
- **Baseline**: what the measure returned the day it was agreed, with the date.
|
|
40
|
+
- **Target**: the value to reach.
|
|
41
|
+
- **By when**: a date or a quarter.
|
|
42
|
+
- **State**: not started | in progress | at risk | done
|
|
43
|
+
|
|
44
|
+
The measure gets run before the goal is agreed: if it does not work, what is
|
|
45
|
+
missing is building it, and that is work. See /city:goals.
|
|
46
|
+
|
|
47
|
+
-->
|
|
48
|
+
|
|
49
|
+
## Round history
|
|
50
|
+
|
|
51
|
+
Rounds leave their summary here, most recent first.
|
package/demo/luca.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
user: luca
|
|
3
|
+
name: Luca Ferri
|
|
4
|
+
role: dev
|
|
5
|
+
agent: luca/dev
|
|
6
|
+
repos: [lab-procgen, lab-npc-brains, lab-shaders, lab-notebooks, sandbox-ui]
|
|
7
|
+
goals_defined: true
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Luca Ferri
|
|
11
|
+
|
|
12
|
+
Role: **dev** — in the city, the **master builder**. The domain is in `roles/dev.md`.
|
|
13
|
+
|
|
14
|
+
## Repos
|
|
15
|
+
|
|
16
|
+
Answers for: `lab-procgen`, `lab-npc-brains`, `lab-shaders`, `lab-notebooks`, `sandbox-ui`.
|
|
17
|
+
|
|
18
|
+
## Current goals
|
|
19
|
+
|
|
20
|
+
### O1 — The lab ships one thing a quarter into a real game
|
|
21
|
+
- **What**: The lab ships one thing a quarter into a real game.
|
|
22
|
+
- **How it is measured**: Lab work that reaches players
|
|
23
|
+
- **Measure**: `manual — Luca and Ada review at the end of each quarter`
|
|
24
|
+
- **Baseline**: 0 in the last two quarters (2026-06-30)
|
|
25
|
+
- **Target**: 1 per quarter
|
|
26
|
+
- **By when**: Q1 2027
|
|
27
|
+
- **State**: not started
|
|
28
|
+
|
|
29
|
+
<!-- Format, one block per goal:
|
|
30
|
+
|
|
31
|
+
### O1 — <short title>
|
|
32
|
+
- **What**: what has to be achieved, in one sentence.
|
|
33
|
+
- **How it is measured**: the concrete signal that says whether it is going well.
|
|
34
|
+
- **Measure**: the command or query returning that signal, runnable as written.
|
|
35
|
+
If the signal is a judgement and not a number: `manual — <who looks at what, and
|
|
36
|
+
how often>`.
|
|
37
|
+
- **Baseline**: what the measure returned the day it was agreed, with the date.
|
|
38
|
+
- **Target**: the value to reach.
|
|
39
|
+
- **By when**: a date or a quarter.
|
|
40
|
+
- **State**: not started | in progress | at risk | done
|
|
41
|
+
|
|
42
|
+
The measure gets run before the goal is agreed: if it does not work, what is
|
|
43
|
+
missing is building it, and that is work. See /city:goals.
|
|
44
|
+
|
|
45
|
+
-->
|
|
46
|
+
|
|
47
|
+
## Round history
|
|
48
|
+
|
|
49
|
+
Rounds leave their summary here, most recent first.
|
package/demo/parcels.yml
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Parcels — which slice of which repo serves which business unit.
|
|
2
|
+
#
|
|
3
|
+
# Aurora Games is made up for this demo: a game studio with four business units,
|
|
4
|
+
# a lab, and a pile of shared code. Any company shaped like this works the same.
|
|
5
|
+
#
|
|
6
|
+
# A house on the map is not a repo: it is a **parcel**. One repo can hold several,
|
|
7
|
+
# and that is not a drawing detail — it is the central fact of most codebases: a
|
|
8
|
+
# monorepo holds products from every unit, and the shared engine serves them all.
|
|
9
|
+
#
|
|
10
|
+
# Two things read this file, which is why it lives in data and not in code:
|
|
11
|
+
# 1. The city map, to know which district each house belongs to.
|
|
12
|
+
# 2. The notice router, to decide who to tell based on the FILES a PR touches
|
|
13
|
+
# — an exact signal, not a list of topics that goes stale.
|
|
14
|
+
#
|
|
15
|
+
# units: mobile | console | arcade | school | platform | data | lab | none
|
|
16
|
+
# path: glob relative to the repo. Empty = the whole repo. First match wins, so
|
|
17
|
+
# specific goes before general.
|
|
18
|
+
|
|
19
|
+
repos:
|
|
20
|
+
nova:
|
|
21
|
+
- ruta: "apps/puzzle-*/**" ; unidad: mobile ; nombre: "Puzzle Quest"
|
|
22
|
+
- ruta: "apps/farm-*/**" ; unidad: mobile ; nombre: "Farm Tycoon"
|
|
23
|
+
- ruta: "apps/rift-*/**" ; unidad: console ; nombre: "Rift Runner"
|
|
24
|
+
- ruta: "apps/cabinet-*/**" ; unidad: arcade ; nombre: "Cabinet firmware"
|
|
25
|
+
- ruta: "apps/school-*/**" ; unidad: school ; nombre: "School editions"
|
|
26
|
+
- ruta: "packages/**" ; unidad: none ; nombre: "nova · packages"
|
|
27
|
+
- ruta: "" ; unidad: none ; nombre: "nova · monorepo"
|
|
28
|
+
|
|
29
|
+
# Standalone repos. A repo with nothing declared here lands in "no unit", which
|
|
30
|
+
# is honest but not useful: on the map it turns into a district of orphans that
|
|
31
|
+
# tells you nothing. Saying which unit each repo serves is the work, and it is
|
|
32
|
+
# the work that makes the map worth looking at.
|
|
33
|
+
puzzle-quest:
|
|
34
|
+
- ruta: "" ; unidad: mobile ; nombre: "Puzzle Quest"
|
|
35
|
+
farm-tycoon:
|
|
36
|
+
- ruta: "" ; unidad: mobile ; nombre: "Farm Tycoon"
|
|
37
|
+
ads-mediation:
|
|
38
|
+
- ruta: "" ; unidad: mobile ; nombre: "Ad mediation"
|
|
39
|
+
rift-runner:
|
|
40
|
+
- ruta: "" ; unidad: console ; nombre: "Rift Runner"
|
|
41
|
+
netcode:
|
|
42
|
+
- ruta: "" ; unidad: console ; nombre: "Netcode"
|
|
43
|
+
controller-sdk:
|
|
44
|
+
- ruta: "" ; unidad: console ; nombre: "Controller SDK"
|
|
45
|
+
launcher:
|
|
46
|
+
- ruta: "" ; unidad: platform; nombre: "Launcher"
|
|
47
|
+
store-service:
|
|
48
|
+
- ruta: "" ; unidad: platform; nombre: "Store"
|
|
49
|
+
infrastructure:
|
|
50
|
+
- ruta: "" ; unidad: platform; nombre: "Infrastructure"
|
|
51
|
+
ci-templates:
|
|
52
|
+
- ruta: "" ; unidad: platform; nombre: "CI templates"
|
|
53
|
+
crash-reporter:
|
|
54
|
+
- ruta: "" ; unidad: platform; nombre: "Crash reporter"
|
|
55
|
+
consent-kit:
|
|
56
|
+
- ruta: "" ; unidad: platform; nombre: "Consent kit"
|
|
57
|
+
asset-pipeline:
|
|
58
|
+
- ruta: "" ; unidad: arcade ; nombre: "Asset pipeline"
|
|
59
|
+
telemetry-collector:
|
|
60
|
+
- ruta: "" ; unidad: data ; nombre: "Telemetry collector"
|
|
61
|
+
etl-jobs:
|
|
62
|
+
- ruta: "" ; unidad: data ; nombre: "ETL jobs"
|
|
63
|
+
dbt-models:
|
|
64
|
+
- ruta: "" ; unidad: data ; nombre: "dbt models"
|
|
65
|
+
ab-testing:
|
|
66
|
+
- ruta: "" ; unidad: data ; nombre: "Experiments"
|
|
67
|
+
player-dashboards:
|
|
68
|
+
- ruta: "" ; unidad: school ; nombre: "Classroom dashboards"
|
|
69
|
+
|
|
70
|
+
engine-core:
|
|
71
|
+
- ruta: "renderer/**" ; unidad: none ; nombre: "engine · renderer"
|
|
72
|
+
- ruta: "audio/**" ; unidad: none ; nombre: "engine · audio"
|
|
73
|
+
- ruta: "physics/**" ; unidad: none ; nombre: "engine · physics"
|
|
74
|
+
- ruta: "" ; unidad: none ; nombre: "engine · core"
|
|
75
|
+
|
|
76
|
+
# The lab.
|
|
77
|
+
#
|
|
78
|
+
# Research and development: it does not ship to players yet, and it is needed.
|
|
79
|
+
# It gets its own district instead of falling into the "no unit" bucket on
|
|
80
|
+
# purpose — a lab repo among the orphans reads as waste, and it is the opposite:
|
|
81
|
+
# it is the part of the studio working for two years from now instead of for this
|
|
82
|
+
# quarter.
|
|
83
|
+
#
|
|
84
|
+
# Drawn with permanent scaffolding, because that is what it is: a site that is
|
|
85
|
+
# open on purpose. And its growth is not compared against the shipping units: a
|
|
86
|
+
# lab house with few floors is not behind, it is early.
|
|
87
|
+
lab:
|
|
88
|
+
- lab-procgen
|
|
89
|
+
- lab-npc-brains
|
|
90
|
+
- lab-shaders
|
|
91
|
+
- lab-notebooks
|
|
92
|
+
- sandbox-ui
|
package/demo/seed.py
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Load the demo city: Aurora Games, a made-up game studio.
|
|
3
|
+
|
|
4
|
+
Twelve people, four business units, a lab, and three years of generated history
|
|
5
|
+
so the replay has something to replay. It is the same seeder the real thing uses,
|
|
6
|
+
pointed at `demo/` and told to invent a past.
|
|
7
|
+
|
|
8
|
+
./demo/seed.py --local load it into the local D1
|
|
9
|
+
./demo/seed.py --remote load it into the deployed one
|
|
10
|
+
|
|
11
|
+
An empty city teaches nothing: you cannot tell whether the thing works, and you
|
|
12
|
+
cannot show it to anyone. Hence a demo that arrives alive.
|
|
13
|
+
"""
|
|
14
|
+
import os
|
|
15
|
+
import sys
|
|
16
|
+
|
|
17
|
+
AQUI = os.path.dirname(os.path.abspath(__file__))
|
|
18
|
+
SEMBRADOR = os.path.join(AQUI, '..', 'city', 'scripts', 'seed.py')
|
|
19
|
+
os.execv(sys.executable,
|
|
20
|
+
[sys.executable, SEMBRADOR, '--data', AQUI, '--fake-history', *sys.argv[1:]])
|