-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.cursorrules
More file actions
47 lines (38 loc) · 1.55 KB
/
.cursorrules
File metadata and controls
47 lines (38 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# SPDX-License-Identifier: PMPL-1.0-or-later
# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} (hyperpolymath) <{{AUTHOR_EMAIL}}>
# Authoritative source: docs/AI-CONVENTIONS.md
# Read 0-AI-MANIFEST.a2ml in the repo root FIRST for canonical file locations.
# LICENSE
# All original code: PMPL-1.0-or-later (SPDX header required on every file).
# Never use AGPL-3.0. Fallback to MPL-2.0 only when platform requires it.
# Copyright: {{AUTHOR}} (hyperpolymath) <{{AUTHOR_EMAIL}}>
# STATE FILES
# .a2ml metadata files go in .machine_readable/ ONLY.
# Never create STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml, AGENTIC.a2ml,
# NEUROSYM.a2ml, or PLAYBOOK.a2ml in the repository root.
# BANNED PATTERNS
# Idris2: believe_me, assert_total, assert_smaller, unsafePerformIO
# Haskell: unsafeCoerce, unsafePerformIO, undefined, error
# OCaml: Obj.magic, Obj.repr, Obj.obj
# Coq: Admitted
# Lean: sorry
# Rust: transmute (unless FFI with // SAFETY: comment)
# BANNED LANGUAGES
# TypeScript -> use ReScript
# Node.js / npm / bun -> use Deno
# Go -> use Rust
# Python -> use Julia or Rust
# CONTAINERS
# Runtime: Podman (never Docker)
# File: Containerfile (never Dockerfile)
# Base: cgr.dev/chainguard/wolfi-base:latest
# ABI/FFI STANDARD
# ABI definitions: Idris2 with dependent types (src/abi/)
# FFI implementation: Zig with C ABI (ffi/zig/)
# Generated C headers: generated/abi/
# BUILD SYSTEM
# Use just (justfile) for all build, test, lint, and format tasks.
# CODE STYLE
# Use descriptive variable names.
# Annotate and document all files.
# Add SPDX-License-Identifier header to every source file.