Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
* text=auto eol=lf

# The standalone preview embeds generated JavaScript with significant whitespace.
# Vendored upstream reference source stays out of GitHub's language stats.
repos/** linguist-vendored
37 changes: 13 additions & 24 deletions .project-kit/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,11 @@
},
"design": {
"status": "production-workbench",
"selection": "design/selection.json",
"surface": "design/DESIGN.md"
"surface": "docs/design.md"
},
"reviewRuntime": {
"status": "implemented-local-and-cloud-review",
"documentation": "docs/review-runtime.md",
"comparisonDocumentation": "docs/research/agent-harness-comparison.md",
"harness": "@earendil-works/pi-durable",
"applicationRuntime": "bun",
"localExecutionDefault": true,
Expand All @@ -46,7 +44,7 @@
"automaticReturn": "live-transport-and-recovery-with-uncertain-model-outcome",
"drawingSetReview": "recorded-provider-and-real-package-roundtrip"
},
"validationDocumentation": "docs/research/cloud-validation.md",
"validationDocumentation": "docs/validation/cloud-validation.md",
"documentation": "docs/cloud-reviews.md",
"sdk": "modal@0.11.1",
"language": "TypeScript on Bun",
Expand Down Expand Up @@ -76,7 +74,7 @@
"https://modal.com/docs/guide/sandbox-snapshots",
"https://modal.com/docs/guide/volumes"
],
"implementationDocumentation": "docs/research/pi-runtime.md",
"implementationDocumentation": "docs/architecture/pi-runtime.md",
"versions": {
"pi": "1.4.0",
"pi-ai": "1.4.0",
Expand All @@ -86,16 +84,15 @@
"heroCase": "docs/fixtures/hero-case.md",
"primaryDemoPlatform": "linux-x64",
"promptInstructions": {
"version": "moke-packet-review-v8",
"source": "https://github.com/sc-frederick/skills/tree/8a0e2648738018631eaa6d24ee0b6ebaa239afb1/moke-review",
"version": "moke-packet-review-v10",
"source": "Author's private review-instruction repository at revision 8a0e2648738018631eaa6d24ee0b6ebaa239afb1",
"provenance": "backend/review/prompts/provenance.json",
"scope": "Whole supplied packet or selected discipline with explicit coverage, governing sources, findings and offline HTML report",
"legacyCountVersion": "moke-selected-coordination-v2",
"systemPrompt": "Pi Durable conversation agent.instructions with full master, shared method and applicable discipline files",
"findingStyle": {
"instructions": "backend/review/prompts/finding-style.md",
"contract": "src/lib/review/finding-summary.ts",
"examples": "docs/research/meta-vs-sonnet-unslop-findings.md",
"purpose": "Validated short display summaries with complete technical findings retained"
}
},
Expand All @@ -113,14 +110,13 @@
]
},
"firmMemory": {
"decision": "docs/firm-memory-plan.md",
"decidedOn": "2026-10-30",
"implemented": ["finding decisions", "firm checklist", "jurisdiction leads"],
"deferred": "firm detail library, visual precedent retrieval, learned playbook",
"migration": "migrations/0011_firm_checklist.sql"
},
"codeIndex": {
"version": "florida-code-index-v2",
"version": "florida-code-index-v3",
"module": "backend/review/code-index/code-index.ts",
"provenance": "backend/review/code-index/provenance.json",
"tool": "search_code",
Expand All @@ -138,9 +134,6 @@
}
},
"hackathon": {
"bonusDocumentation": "docs/hackathon-bonuses.md",
"primaryBonusTarget": "Best Agentic Use-Case",
"secondaryBonusTarget": "Best Build on Meta Open Weight Models",
"sourcesCheckedOn": "2026-10-27",
"sources": [
"https://cerebralvalley.ai/e/meta-ai-developer-hackathon/details",
Expand All @@ -150,19 +143,19 @@
"segmentationExperiment": {
"entrypoint": "scripts/test-sam.ts",
"cases": "experiments/sam/cases.json",
"documentation": "docs/segmentation-test.md",
"documentation": "docs/experiments/segmentation-test.md",
"model": "sam-3.1",
"parser": "@meta-sam/parser@0.1.0",
"pdfRenderer": "Poppler pdftoppm, external test dependency",
"fixtureManifest": "Moke-Hackathon-Drawings/drawing-manifest.json",
"artifactDirectory": ".local/sam",
"plumbingStudy": {
"documentation": "docs/plumbing-segmentation.md",
"documentation": "docs/experiments/plumbing-segmentation.md",
"cropRecipe": "experiments/sam/plumbing-crops.json",
"candidateCases": "experiments/sam/plumbing-cases.json",
"refinementCases": "experiments/sam/plumbing-refinement-cases.json",
"reconciliationEntrypoint": "scripts/reconcile-fixtures.ts",
"mokeInstructions": "https://github.com/sc-frederick/skills/tree/8a0e2648738018631eaa6d24ee0b6ebaa239afb1/moke-review"
"mokeInstructions": "backend/review/prompts/assets"
},
"sourcesCheckedOn": "2026-10-27",
"sources": [
Expand All @@ -171,12 +164,8 @@
"https://dev.meta.ai/docs/sam/client-libraries"
],
"drawingExpansion": {
"documentation": "docs/sam-drawing-expansion.md",
"documentation": "docs/experiments/sam-drawing-expansion.md",
"recipes": "experiments/sam/symbols",
"researchTools": [
"Executor Exa",
"Executor Firecrawl"
],
"sourcesCheckedOn": "2026-10-27",
"sources": [
"https://arxiv.org/html/2511.16719v2",
Expand All @@ -189,7 +178,7 @@
},
"adaptiveReview": {
"entrypoint": "scripts/test-review-agent.ts",
"documentation": "docs/adaptive-meta-review.md",
"documentation": "docs/experiments/adaptive-meta-review.md",
"cases": "experiments/sam/adaptive-cases.json",
"models": [
"muse-spark-1.3",
Expand All @@ -205,7 +194,7 @@
]
},
"additionalDisciplineSets": {
"documentation": "docs/sam-expanded-sets.md",
"documentation": "docs/experiments/sam-expanded-sets.md",
"recipes": "experiments/sam/expanded",
"fixtureManifest": "Moke-Hackathon-Drawings/expanded/drawing-manifest.json",
"artifactDirectory": ".local/sam/iteration-5",
Expand All @@ -230,7 +219,7 @@
"hackathonOverride": {
"provider": "baseten",
"model": "meta-models/muse-spark-open-1026",
"source": "User-provided Baseten hackathon onboarding screenshot, image.png"
"source": "Baseten hackathon onboarding"
}
}
}
13 changes: 5 additions & 8 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,10 @@ vendored in tools/oxlint/anti-slop; preserve local customizations when updating.
Use SvelteKit 3 configuration in vite.config.ts, Svelte 5 runes, and #lib imports.
Use the Svelte coding skills and run their autofixer when editing components.

The initial notes UI is a functional smoke example. Choose visual design during
app design from any entry in sc-frederick/uiverse-templates, the user's private
backup of downloaded Uiverse design systems. Forge and Aether are recent choices.
Run project-kit designs to list the archive and project-kit design <slug> to
import the chosen reference. Preserve its DESIGN.md, assets, and license. Keep
reference source outside public distributions and adapt the selected design to
the application rather than adding a second UI system.
The workbench adapts the Forge design system; docs/design.md records how. Use the
tokens in src/lib/forge.css rather than adding a second UI system. A licensed copy
of the Forge pack may sit in the ignored design/reference/ directory. Its license
forbids republishing it, so never commit it or ship it in a distribution.

## Runtime boundaries

Expand All @@ -47,7 +44,7 @@ migration or recovery behavior. Read docs/deployment.md before release changes.

Authentication and cloud capabilities are selected per application. Implement
authorization at operation boundaries. Choose desktop updater delivery and access
per project; aecPermitMonitor is a reference to evaluate for R2-hosted updates.
per project.

Scaffolding itself does not deploy resources or publish applications. Follow the
user's requested scope when moving from local implementation to external changes.
23 changes: 10 additions & 13 deletions PRODUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ are known, and its wording stays unconfirmed until the engineer opens the link.
Its stored status remains unverified.
Calculations retain formulas, input values and declared units; units are not
automatically reconciled. Model findings are review results, not professional
approval. Sequential discipline passes are supported; the app does not claim to
launch parallel reviewers.
approval. A packet with four or more sheets runs as a coordinator plus one
reviewer per sheet.

The conversation presents a short review summary with compact findings. Opening
a finding shows readable details and source evidence in the central canvas.
Expand Down Expand Up @@ -96,7 +96,8 @@ Until a revised set arrives, an **Initial Review** button sits above the compose
One click posts the preset first-submittal request (`initial-review-v1`, in
`src/lib/review/initial-review.ts`) as the reviewer's message and starts a review
of every sheet in the first set, with all disciplines and the four passes, on
Muse Spark 1.3. It runs in the cloud when cloud review is set up and can take the
the reviewer's preferred model. The default is Muse Spark 1.3, or Muse Spark 1.3
Contributor when OpenCode Go is connected. It runs in the cloud when cloud review is set up and can take the
workspace, and on this computer otherwise; one line beside the button says which.
The review records the preset's identity. The button is disabled while a review
runs in the conversation and can run again during the initial phase, for example
Expand All @@ -105,20 +106,16 @@ span several PDFs: the phase ends when a PDF is linked to earlier sheets through
revision correspondence, or when a PDF is imported after the project's first
drawing-set review started. After that, reviewers use typed requests.

The original desktop UI study established chat as the main work surface.
Projects group their conversations in navigation, and selecting a conversation
updates the project and conversation breadcrumb. Closing the source pane restores
the chat's width. The user referenced T3 Code's information menu and the existing
result-to-evidence behavior in the aec_pgrep codebase.
Chat is the main work surface. Projects group their conversations in navigation,
and selecting a conversation updates the project and conversation breadcrumb.
Closing the source pane restores the chat's width.

The application uses persisted projects, conversations, review requests, findings
and source evidence. Sheet confirmation and revision correspondence remain
explicit for count checks.

## Brand Commitments

The user named OpenCode, T3 Code and Cloudflare OS as visual references, with
particular emphasis on T3 Code's desktop polish. The current workbench adapts the
Forge design system selected from the Uiverse catalog: a dark, industrial
interface with hairline panels, one ember accent, compact navigation and
evidence beside the conversation.
The workbench adapts the Forge design system: a dark, industrial interface with
hairline panels, one ember accent, compact navigation and evidence beside the
conversation. See [the design notes](docs/design.md).
31 changes: 23 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,15 @@ Regulatory findings need applicable governing sources; unavailable sources and
unknown editions remain Needs input. SAM geometry does not establish physical
dimensions.

## Install

Download the installer for Windows, macOS (Apple silicon) or Linux from
[GitHub Releases](https://github.com/sc-frederick/moke-meta-hackathon/releases/latest).
The installers are unsigned. macOS can block the first launch; allow it under
System Settings › Privacy & Security › Open Anyway. On Linux, make the AppImage
executable or install the `.deb`. Model reviews need a provider key; see
[inference setup](docs/inference.md).

## How it works

| Process | Owns |
Expand All @@ -69,8 +78,8 @@ optional call budget. The default packet review has no application call ceiling;
long conversations use Pi compaction. Complete packages export and restore the
database, original PDFs, rendered evidence and execution journals together.

Projects run locally, but inference uses hosted Meta or Baseten APIs and sends
selected drawing evidence to the provider. **Push to cloud** transfers the complete
Projects run locally, but inference uses hosted Meta, Baseten or OpenCode Go APIs,
or a custom endpoint you add, and sends selected drawing evidence to that provider. **Push to cloud** transfers the complete
workspace for a new bounded review, streams progress, and automatically syncs results with local
ownership checks. See [cloud setup and limits](docs/cloud-reviews.md),
[the runtime decision](docs/review-runtime.md), and
Expand All @@ -88,7 +97,9 @@ bun run dev
You can import drawings and use manual count checks without provider keys.
For model review, copy [.env.example](.env.example) to `.env` and set
`OPENCODE_API_KEY`, `MODEL_API_KEY` or `BASETEN_API_KEY`. With a Go key, reviews run
on OpenCode Go, and Meta is used only for SAM and count checks. Otherwise choose
on Muse Spark 1.3 Contributor through OpenCode Go, and Meta's API is used only for
SAM and count checks. Contributor trains on your drawings, and Go refuses it until
a workspace owner allows that. Otherwise choose
Muse Spark, Muse Wonder or Baseten Muse Spark Open in the app.
Restart after changing credentials. See [inference setup](docs/inference.md) for
packaged-app credentials, model capabilities and optional review budgets.
Expand Down Expand Up @@ -125,24 +136,28 @@ migrations/ Immutable SQLite migrations
tests/ Smoke tests, Electron end-to-end flows, and synthetic fixtures
scripts/ Development, build, packaged checks, and opt-in model experiments
docs/ Setup, architecture, screenshots, and validation evidence
design/ Forge design selection, adaptation notes, and icon license
experiments/ SAM recipes, captured proposals, and research evidence
```

The [documentation index](docs/README.md) separates setup and architecture from
hackathon research and drawing experiments. The [workbench design notes](design/DESIGN.md)
validation records and drawing experiments. The [workbench design notes](docs/design.md)
record the Forge design system, its adaptations, and third-party asset attribution.

## Hackathon provenance

The Moke name and review prompts predate this entry. This repository implements
a fresh application from the project-kit desktop starter, with drawing evidence,
corrections, and revision tracking built for the hackathon. It does not reuse the
earlier Moke application. Prompt and dependency provenance live in
earlier Moke application. Pi Durable provides agent execution as an MIT-licensed
dependency; the new work is the drawing-review application, evidence handling,
corrections, revision behavior and portable review execution. Prompt and
dependency provenance live in
[the project manifest](.project-kit/manifest.json) and
[the review prompt sources](backend/review/prompts/README.md).

## License

Moke is released under the [MIT License](LICENSE). Vendored code and design
assets keep their own licenses, which sit beside them in the repository.
Moke is released under the [MIT License](LICENSE). Vendored code and third-party
assets keep their own licenses. The styles in `src/lib/forge.css` are adapted from
Uiverse Design's Forge and remain under its license; see
[the design notes](docs/design.md).
2 changes: 1 addition & 1 deletion backend/review/code-index/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ for a section listed in a combined title. Every section the host links this way,
the sections in the additions, was checked to exist with its title and Reserved
status, against ICC's Eighth Edition tables of contents as returned by a search index
and against UpCodes. The check is recorded in
[the research note](../../../docs/research/citation-links-real-set.md). An owner's
[the research note](../../../docs/validation/citation-links-real-set.md). An owner's
single-section link was not checked this way, and whether a browser scrolls to an
anchor can only be seen by opening one. A wrong anchor opens the top of the right
chapter.
Expand Down
18 changes: 8 additions & 10 deletions backend/review/prompts/README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
# Moke review instructions

`assets/` contains unmodified files from `sc-frederick/skills/moke-review` at
revision `8a0e2648738018631eaa6d24ee0b6ebaa239afb1`. `provenance.json` records
the upstream paths and SHA-256 hashes. Read the original skill repository to
update them; this application does not edit that source repository.
`assets/` contains unmodified files from the author's private review-instruction
repository at revision `8a0e2648738018631eaa6d24ee0b6ebaa239afb1`. `provenance.json` records
the upstream paths and SHA-256 hashes. This application does not edit that source.

`review-prompt.ts` imports the files with Bun's text loader, embedding them in the
compiled backend. Packet review version `moke-packet-review-v10` supplies the full
Expand All @@ -14,10 +13,9 @@ instruction revision.

`finding-style.md` is application-owned guidance, embedded in every packet
reviewer's instructions for both Meta and Baseten, including coordinator and
sheet roles. It uses the short Sonnet 5.5 rewrites in
`docs/research/meta-vs-sonnet-unslop-findings.md`, rows 28, 36 and 41, as wording
examples. The calculation example expands the circuit abbreviation; a fourth
example illustrates an uncertain reading. The comparison is a style reference,
sheet roles. Its wording examples are short Sonnet 5.5 rewrites of earlier Meta
findings. The calculation example expands the circuit abbreviation; a fourth
example illustrates an uncertain reading. They are a style reference,
not a technical validation of those earlier findings.

The authoritative contract is `src/lib/review/finding-summary.ts`. A display
Expand Down Expand Up @@ -103,7 +101,7 @@ own project/conversation root. Both paths preserve reviewer acceptance of
engineering count inputs; general model findings and prose do not become
accepted count facts.

Audit 3 adds a page-by-page contradiction search before missing-content claims.
The method adds a page-by-page contradiction search before missing-content claims.
The tool boundary requires current-run inspection of every source page, targeted
inspection at the claimed location, an explicit source search and permit-stage
basis. This is an evidence gate, not proof that model interpretation is correct;
Expand All @@ -126,7 +124,7 @@ coordinator's guidance describes setup's sheet and request limits, and

Packet review `moke-packet-review-v8` leaves quotes empty for unread ICC and Florida rule text, and notes empty except for project-specific facts. The host records the access limit required by REVIEW_METHOD.md.

Packet review `moke-packet-review-v9` tells every reviewer to log a citation when a finding rests on a code requirement or a sheet prints one, as REVIEW_METHOD.md requires. A real 46-sheet review on v8 recorded 3 citations in 698 calls, none from a sheet reviewer, because the sheet role never mentioned them. Search is now for when the section is unknown, since naming the document, edition and section gets the same link. See [the research note](../../../docs/research/citation-links-real-set.md).
Packet review `moke-packet-review-v9` tells every reviewer to log a citation when a finding rests on a code requirement or a sheet prints one, as REVIEW_METHOD.md requires. A real 46-sheet review on v8 recorded 3 citations in 698 calls, none from a sheet reviewer, because the sheet role never mentioned them. Search is now for when the section is unknown, since naming the document, edition and section gets the same link. See [the research note](../../../docs/validation/citation-links-real-set.md).

Packet review `moke-packet-review-v10` has models mark finding locations and crops with
`imageBox`, a pixel box in an image they received, which the host converts to PDF points.
Expand Down
4 changes: 2 additions & 2 deletions backend/review/prompts/provenance.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"repository": "https://github.com/sc-frederick/skills",
"repository": "Author's private review-instruction repository",
"revision": "8a0e2648738018631eaa6d24ee0b6ebaa239afb1",
"source": "moke-review",
"promptVersion": "moke-selected-coordination-v2",
Expand Down Expand Up @@ -75,5 +75,5 @@
"sha256": "b30491a08e7fafbb9c75501c4bc8fc1c01d8f25401c4a6b0bf7baaf95e0d95e4"
}
],
"packetPromptVersion": "moke-packet-review-v9"
"packetPromptVersion": "moke-packet-review-v10"
}
Loading
Loading