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
7 changes: 4 additions & 3 deletions .machine_readable/AGENTIC.scm
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
;; SPDX-License-Identifier: AGPL-3.0-or-later
;; AGENTIC.scm - AI agent interaction patterns for rsr-template-repo
;; AGENTIC.scm - AI agent interaction patterns for rescript-websocket

(define agentic-config
`((version . "1.0.0")
Expand All @@ -12,5 +12,6 @@
(refactoring . "conservative")
(testing . "comprehensive")))
(constraints
((languages . ())
(banned . ("typescript" "go" "python" "makefile"))))))
((languages . ("rescript" "bash"))
(banned . ("typescript" "go" "python" "node" "npm" "bun"))
(runtime . "deno-only")))))
36 changes: 26 additions & 10 deletions .machine_readable/ECOSYSTEM.scm
Original file line number Diff line number Diff line change
@@ -1,20 +1,36 @@
;; SPDX-License-Identifier: AGPL-3.0-or-later
;; ECOSYSTEM.scm - Ecosystem position for rsr-template-repo
;; ECOSYSTEM.scm - Ecosystem position for rescript-websocket
;; Media-Type: application/vnd.ecosystem+scm

(ecosystem
(version "1.0")
(name "rsr-template-repo")
(type "")
(purpose "")
(name "rescript-websocket")
(type "library")
(purpose "Type-safe WebSocket bindings for ReScript applications")

(position-in-ecosystem
(category "")
(subcategory "")
(unique-value ()))
(category "networking")
(subcategory "websocket")
(unique-value
("First-class ReScript support"
"Deno-native implementation"
"Zero runtime overhead"
"Type-safe ready state handling")))

(related-projects ())
(related-projects
(("rescript-fetch" . "HTTP client bindings")
("rescript-deno" . "Deno runtime bindings")
("rescript-json-schema" . "JSON Schema validation")
("rescript-full-stack" . "Parent ecosystem")))

(what-this-is ())
(what-this-is
("WebSocket client bindings"
"WebSocket server bindings for Deno"
"Broadcast utilities"
"Type-safe event handling"))

(what-this-is-not ()))
(what-this-is-not
("Full Socket.IO replacement"
"Message persistence layer"
"Authentication system"
"Horizontal scaling solution")))
25 changes: 19 additions & 6 deletions .machine_readable/META.scm
Original file line number Diff line number Diff line change
@@ -1,17 +1,30 @@
;; SPDX-License-Identifier: AGPL-3.0-or-later
;; META.scm - Meta-level information for rsr-template-repo
;; META.scm - Meta-level information for rescript-websocket
;; Media-Type: application/meta+scheme

(meta
(architecture-decisions ())
(architecture-decisions
(("Zero-cost FFI" . "Direct bindings to WebSocket API with no wrapper overhead")
("Type-safe ready states" . "Enum for connection states instead of magic numbers")
("Deno-first" . "Designed for Deno runtime, not Node.js")
("Pipe-first API" . "Functions designed for -> operator")))

(development-practices
(code-style ())
(code-style
("@@uncurried for all modules"
"Pipe-first syntax preferred"
"Doc comments on public API"))
(security
(principle "Defense in depth"))
(testing ())
(principle "Secure by default")
(notes "WSS preferred, no credential storage"))
(testing
("Deno test runner"
"Integration tests with real WebSocket"))
(versioning "SemVer")
(documentation "AsciiDoc")
(branching "main for stable"))

(design-rationale ()))
(design-rationale
(("External bindings" . "Use @external for direct JS interop")
("Callback-based events" . "Match WebSocket API semantics")
("Optional server" . "Client works standalone without server module"))))
23 changes: 15 additions & 8 deletions .machine_readable/PLAYBOOK.scm
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
;; SPDX-License-Identifier: AGPL-3.0-or-later
;; PLAYBOOK.scm - Operational runbook for rsr-template-repo
;; PLAYBOOK.scm - Operational runbook for rescript-websocket

(define playbook
`((version . "1.0.0")
(procedures
((deploy . (("build" . "just build")
("test" . "just test")
("release" . "just release")))
(rollback . ())
(debug . ())))
(alerts . ())
(contacts . ())))
((build . (("compile" . "just build")
("watch" . "just dev")))
(test . (("unit" . "just test")
("coverage" . "just test-coverage")))
(release . (("build" . "just build-release")
("publish" . "deno publish")))
(debug . (("repl" . "deno repl")
("inspect" . "deno run --inspect")))))
(alerts
((build-failure . "Check ReScript compiler output")
(test-failure . "Review test logs")))
(contacts
((maintainer . "hyperpolymath@proton.me")
(issues . "github.com/hyperpolymath/rescript-websocket/issues")))))
64 changes: 44 additions & 20 deletions .machine_readable/STATE.scm
Original file line number Diff line number Diff line change
@@ -1,39 +1,63 @@
;; SPDX-License-Identifier: AGPL-3.0-or-later
;; STATE.scm - Project state for rsr-template-repo
;; STATE.scm - Project state for rescript-websocket
;; Media-Type: application/vnd.state+scm

(state
(metadata
(version "0.0.1")
(version "0.1.0")
(schema-version "1.0")
(created "2026-01-03")
(updated "2026-01-03")
(project "rsr-template-repo")
(repo "github.com/hyperpolymath/rsr-template-repo"))
(created "2025-01-01")
(updated "2025-01-04")
(project "rescript-websocket")
(repo "github.com/hyperpolymath/rescript-websocket"))

(project-context
(name "rsr-template-repo")
(tagline "")
(tech-stack ()))
(name "rescript-websocket")
(tagline "Type-safe WebSocket client and server for ReScript")
(tech-stack ("ReScript" "Deno" "WebSocket")))

(current-position
(phase "initial")
(overall-completion 0)
(components ())
(working-features ()))
(phase "initial-release")
(overall-completion 60)
(components
(("client" . 100)
("server" . 100)
("broadcast" . 100)
("tests" . 0)
("docs" . 80)))
(working-features
("WebSocket client connection"
"Event handlers (open, close, message, error)"
"Text and binary message sending"
"JSON message helper"
"Ready state checking"
"Promise-based waitForOpen"
"Server-side WebSocket upgrade"
"Deno.serve integration"
"Multi-client broadcast")))

(route-to-mvp
(milestones ()))
(milestones
(("v0.1.0" . "Core client and server bindings")
("v0.2.0" . "Room/channel abstraction")
("v0.3.0" . "Protocol support")
("v1.0.0" . "Stable release"))))

(blockers-and-issues
(critical)
(high)
(medium)
(low))
(medium
("Test suite not yet implemented"))
(low
("JSR publication pending")))

(critical-next-actions
(immediate)
(this-week)
(this-month))
(immediate
("Write basic test suite"))
(this-week
("Publish to JSR"))
(this-month
("Add room/channel abstraction")))

(session-history ()))
(session-history
(("2025-01-04" . "Initial implementation complete"))))
Loading
Loading