Skip to content

Commit ce318f0

Browse files
Jonathan D.A. Jewellclaude
andcommitted
feat: achieve full RSR compliance for im-docs (Wayfinder)
This commit brings im-docs to full RSR compliance with three key improvements: 1. Removed duplicate files (4 files): - Deleted CHANGELOG.md, CONTRIBUTING.md, MAINTAINERS.md (kept .adoc versions) - Deleted Justfile (kept lowercase justfile per standard) 2. Added missing workflows (4 workflows): - instant-sync.yml - Forge propagation - jekyll.yml - Jekyll build - npm-bun-blocker.yml - Package manager policy enforcement - ts-blocker.yml - TypeScript blocker - Total workflows now: 17 (RSR requirement met) 3. Created .machine_readable/ structure (6 SCM files): - STATE.scm - Project state (Wayfinder, proof-of-concept, 15% complete) - META.scm - Architecture decisions (PROMPT framework, boundary objects) - ECOSYSTEM.scm - Epistemic infrastructure positioning - AGENTIC.scm - AI agent interaction patterns - NEUROSYM.scm - Neurosymbolic integration config - PLAYBOOK.scm - Operational procedures and contacts Wayfinder project context preserved throughout all SCM files. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 94dc77d commit ce318f0

14 files changed

Lines changed: 385 additions & 781 deletions

.github/workflows/instant-sync.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Instant Forge Sync - Triggers propagation to all forges on push/release
3+
name: Instant Sync
4+
5+
on:
6+
push:
7+
branches: [main, master]
8+
release:
9+
types: [published]
10+
11+
permissions:
12+
contents: read
13+
14+
jobs:
15+
dispatch:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- name: Trigger Propagation
19+
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v3
20+
with:
21+
token: ${{ secrets.FARM_DISPATCH_TOKEN }}
22+
repository: hyperpolymath/.git-private-farm
23+
event-type: propagate
24+
client-payload: |-
25+
{
26+
"repo": "${{ github.event.repository.name }}",
27+
"ref": "${{ github.ref }}",
28+
"sha": "${{ github.sha }}",
29+
"forges": ""
30+
}
31+
32+
- name: Confirm
33+
run: echo "::notice::Propagation triggered for ${{ github.event.repository.name }}"

.github/workflows/jekyll.yml

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# This workflow uses actions that are not certified by GitHub.
3+
# They are provided by a third-party and are governed by
4+
# separate terms of service, privacy policy, and support
5+
# documentation.
6+
7+
# Sample workflow for building and deploying a Jekyll site to GitHub Pages
8+
name: Deploy Jekyll site to Pages
9+
10+
on:
11+
# Runs on pushes targeting the default branch
12+
push:
13+
branches: ["main"]
14+
15+
# Allows you to run this workflow manually from the Actions tab
16+
workflow_dispatch:
17+
18+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
19+
permissions:
20+
contents: read
21+
pages: write
22+
id-token: write
23+
24+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
25+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
26+
concurrency:
27+
group: "pages"
28+
cancel-in-progress: false
29+
30+
jobs:
31+
# Build job
32+
build:
33+
runs-on: ubuntu-latest
34+
steps:
35+
- name: Checkout
36+
uses: actions/checkout@v6.0.1
37+
- name: Setup Ruby
38+
# https://github.com/ruby/setup-ruby/releases/tag/v1.207.0
39+
uses: ruby/setup-ruby@708024e6c902387ab41de36e1669e43b5ee7085e
40+
with:
41+
ruby-version: '3.1' # Not needed with a .ruby-version file
42+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
43+
cache-version: 0 # Increment this number if you need to re-download cached gems
44+
- name: Setup Pages
45+
id: pages
46+
uses: actions/configure-pages@v5
47+
- name: Build with Jekyll
48+
# Outputs to the './_site' directory by default
49+
run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
50+
env:
51+
JEKYLL_ENV: production
52+
- name: Upload artifact
53+
# Automatically uploads an artifact from the './_site' directory by default
54+
uses: actions/upload-pages-artifact@v4
55+
56+
# Deployment job
57+
deploy:
58+
environment:
59+
name: github-pages
60+
url: ${{ steps.deployment.outputs.page_url }}
61+
runs-on: ubuntu-latest
62+
needs: build
63+
steps:
64+
- name: Deploy to GitHub Pages
65+
id: deployment
66+
uses: actions/deploy-pages@v4
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
name: NPM/Bun Blocker
3+
on: [push, pull_request]
4+
5+
permissions: read-all
6+
7+
jobs:
8+
check:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
contents: read
12+
steps:
13+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
14+
- name: Block npm/bun
15+
run: |
16+
if [ -f "package-lock.json" ] || [ -f "bun.lockb" ] || [ -f ".npmrc" ]; then
17+
echo "❌ npm/bun artifacts detected. Use Deno instead."
18+
exit 1
19+
fi
20+
echo "✅ No npm/bun violations"

.github/workflows/ts-blocker.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
name: TypeScript/JavaScript Blocker
3+
on: [push, pull_request]
4+
5+
permissions: read-all
6+
7+
jobs:
8+
check:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
contents: read
12+
steps:
13+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
14+
- name: Block new TypeScript/JavaScript
15+
run: |
16+
NEW_TS=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E '\.(ts|tsx)$' | grep -v '\.gen\.' || true)
17+
NEW_JS=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E '\.(js|jsx)$' | grep -v '\.res\.js$' | grep -v '\.gen\.' | grep -v 'node_modules' || true)
18+
19+
if [ -n "$NEW_TS" ] || [ -n "$NEW_JS" ]; then
20+
echo "❌ New TS/JS files detected. Use ReScript instead."
21+
[ -n "$NEW_TS" ] && echo "$NEW_TS"
22+
[ -n "$NEW_JS" ] && echo "$NEW_JS"
23+
exit 1
24+
fi
25+
echo "✅ ReScript policy enforced"

.machine_readable/AGENTIC.scm

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
;; SPDX-License-Identifier: PMPL-1.0-or-later
2+
;; AGENTIC.scm - AI agent interaction patterns for im-docs (Wayfinder)
3+
4+
(define agentic-config
5+
`((version . "1.0.0")
6+
(claude-code
7+
((model . "claude-sonnet-4-5-20250929")
8+
(tools . ("read" "edit" "bash" "grep" "glob"))
9+
(permissions . "read-all")))
10+
(patterns
11+
((code-review . "thorough")
12+
(refactoring . "conservative")
13+
(documentation . "comprehensive")
14+
(cognitive-science-aware . "true")
15+
(epistemic-humility . "required")))
16+
(constraints
17+
((languages . ("AsciiDoc" "Markdown" "Scheme"))
18+
(banned . ("typescript" "go" "python" "makefile"))
19+
(preferred . ("ReScript" "Rust" "Julia" "Gleam" "Elixir"))))
20+
(special-considerations
21+
((journalism-context . "Respect professional standards and ethical considerations")
22+
(epistemic-frameworks . "Maintain PROMPT framework integrity")
23+
(boundary-objects . "Preserve multi-stakeholder coherence")
24+
(heutagogic-design . "Keep learning pathway self-directed and result-focused")))))

.machine_readable/ECOSYSTEM.scm

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
;; SPDX-License-Identifier: PMPL-1.0-or-later
2+
;; ECOSYSTEM.scm - Ecosystem position for im-docs (Wayfinder)
3+
;; Media-Type: application/vnd.ecosystem+scm
4+
5+
(ecosystem
6+
(version "1.0")
7+
(name "Wayfinder")
8+
(type "Epistemic infrastructure")
9+
(purpose "Transform journalism from static truth-claims into navigable knowledge ecosystems")
10+
11+
(position-in-ecosystem
12+
(category "Interactive journalism")
13+
(subcategory "Epistemic interfaces")
14+
(unique-value
15+
("Systematic evidence evaluation (PROMPT framework)"
16+
"Multi-stakeholder boundary objects"
17+
"Heutagogic capability development"
18+
"Four-layer knowledge pipeline (Data/Knowledge/Intelligence/Wisdom)"
19+
"Coordination without consensus")))
20+
21+
(related-projects
22+
(("Korsakow"
23+
(relationship . "inspiration")
24+
(description . "Non-linear documentary platform"))
25+
("Klynt"
26+
(relationship . "inspiration")
27+
(description . "Interactive documentary authoring"))
28+
("Obsidian"
29+
(relationship . "potential-platform")
30+
(description . "Phase 1 prototyping tool"))
31+
("TiddlyWiki"
32+
(relationship . "potential-platform")
33+
(description . "Non-linear personal wiki"))
34+
("i-Docs Research Network"
35+
(relationship . "theoretical-foundation")
36+
(description . "Interactive documentary frameworks"))
37+
("Out My Window"
38+
(relationship . "inspiration")
39+
(description . "Interactive documentary example"))
40+
("Hollow"
41+
(relationship . "inspiration")
42+
(description . "Interactive documentary example"))
43+
("Welcome to Pine Point"
44+
(relationship . "inspiration")
45+
(description . "Interactive documentary example"))))
46+
47+
(what-this-is
48+
("Heutagogic capability development pathway for journalists"
49+
"Interactive journalism framework"
50+
"Epistemic infrastructure for navigating complexity"
51+
"Boundary object creation tool"
52+
"Evidence ecosystem mapper"))
53+
54+
(what-this-is-not
55+
("Traditional CMS or publishing platform"
56+
"Fact-checking automation tool"
57+
"Truth oracle or definitive answer provider"
58+
"Replacement for journalistic judgment"
59+
"Social media or viral content optimizer")))

.machine_readable/META.scm

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
;; SPDX-License-Identifier: PMPL-1.0-or-later
2+
;; META.scm - Meta-level information for im-docs (Wayfinder)
3+
;; Media-Type: application/meta+scheme
4+
5+
(meta
6+
(architecture-decisions
7+
(("Use boundary objects theory"
8+
(status . "accepted")
9+
(rationale . "Enables coordination without consensus across diverse communities")
10+
(date . "2025-11-23"))
11+
("Four-layer knowledge pipeline"
12+
(status . "accepted")
13+
(rationale . "Data → Knowledge → Intelligence → Wisdom separation makes complexity navigable")
14+
(date . "2025-11-23"))
15+
("PROMPT framework for evidence evaluation"
16+
(status . "accepted")
17+
(rationale . "Provides systematic multi-dimensional claim evaluation")
18+
(date . "2025-11-23"))
19+
("Heutagogic learning pathway"
20+
(status . "accepted")
21+
(rationale . "Self-directed, result-focused capability development produces professional outputs")
22+
(date . "2025-11-23"))))
23+
24+
(development-practices
25+
(code-style ("AsciiDoc for documentation" "Progressive disclosure"))
26+
(security
27+
(principle "Transparency and epistemic humility"))
28+
(testing ("User testing with journalists" "Beta testing program"))
29+
(versioning "SemVer")
30+
(documentation "AsciiDoc")
31+
(branching "main for stable")
32+
(philosophy "Build in public, open source from day one, collaborative not competitive"))
33+
34+
(design-rationale
35+
(("Cognitive science integration"
36+
(description . "Progressive disclosure, meta-cognitive prompts, empathy-first contradictory evidence")
37+
(reasoning . "Reduces cognitive overload and defensive reactions"))
38+
("Bio-Psycho-Social-Technical design"
39+
(description . "Considers biological attention limits, psychological identity protection, social sense-making, technical accessibility")
40+
(reasoning . "Holistic approach to epistemic interface design"))
41+
("Interactive documentary frameworks"
42+
(description . "Inspired by i-Docs: Out My Window, Hollow, Welcome to Pine Point")
43+
(reasoning . "Proven models for non-linear narrative and boundary objects"))
44+
("Wayfinders not gatekeepers"
45+
(description . "Journalists as guides through complexity, not truth authorities")
46+
(reasoning . "Addresses epistemic crisis and journalist demoralization")))))

.machine_readable/NEUROSYM.scm

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
;; SPDX-License-Identifier: PMPL-1.0-or-later
2+
;; NEUROSYM.scm - Neurosymbolic integration config for im-docs (Wayfinder)
3+
4+
(define neurosym-config
5+
`((version . "1.0.0")
6+
(symbolic-layer
7+
((type . "scheme")
8+
(reasoning . "deductive")
9+
(verification . "formal")
10+
(frameworks . ("PROMPT" "boundary-objects" "four-layer-pipeline"))))
11+
(neural-layer
12+
((embeddings . false)
13+
(fine-tuning . false)
14+
(cognitive-models . ("progressive-disclosure"
15+
"meta-cognitive-prompts"
16+
"empathy-first-contradiction"))
17+
(attention-models . ("bio-psycho-social-technical"))))
18+
(integration
19+
((evidence-evaluation . "PROMPT-framework-scoring")
20+
(claim-analysis . "provenance-tracking")
21+
(contradiction-detection . "pattern-recognition")
22+
(epistemic-humility . "uncertainty-quantification")))))

.machine_readable/PLAYBOOK.scm

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
;; SPDX-License-Identifier: PMPL-1.0-or-later
2+
;; PLAYBOOK.scm - Operational runbook for im-docs (Wayfinder)
3+
4+
(define playbook
5+
`((version . "1.0.0")
6+
(procedures
7+
((deploy . (("build-docs" . "Generate AsciiDoc to HTML")
8+
("publish" . "Deploy to GitLab Pages")
9+
("validate" . "Check RSR compliance")))
10+
(content-development . (("level-1" . "Create evidence mapping template and materials")
11+
("level-2a" . "Process documentation templates")
12+
("level-2b" . "Uncertainty communication guides")
13+
("level-3" . "Interactive investigation builder")
14+
("level-4" . "Infrastructure building tools")))
15+
(beta-testing . (("recruit" . "Identify demoralized journalists")
16+
("onboard" . "Level 1 pathway (4-8 hours)")
17+
("feedback" . "Collect and integrate learnings")
18+
("iterate" . "Refine based on real-world use")))
19+
(rollback . (("revert-content" . "Git revert to previous stable version")))
20+
(debug . (("trace-prompt-evaluation" . "Check PROMPT framework scoring")
21+
("verify-boundary-coherence" . "Ensure multi-stakeholder alignment")))))
22+
(alerts
23+
((epistemic-crisis . "Loss of evidence provenance or methodology transparency")
24+
(boundary-failure . "Stakeholder communities unable to coordinate")
25+
(cognitive-overload . "User feedback indicates excessive complexity")))
26+
(contacts
27+
((maintainer . "Jonathan D.A. Jewell <jonathan.jewell@open.ac.uk>")
28+
(academic-supervisor . "Nico Carpentier (PhD supervisor)")
29+
(community . "i-Docs Research Network")
30+
(professional-org . "National Union of Journalists (NUJ)")))))

.machine_readable/STATE.scm

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
;; SPDX-License-Identifier: PMPL-1.0-or-later
2+
;; STATE.scm - Project state for im-docs (Wayfinder)
3+
;; Media-Type: application/vnd.state+scm
4+
5+
(state
6+
(metadata
7+
(version "0.1.0-alpha")
8+
(schema-version "1.0")
9+
(created "2025-11-23")
10+
(updated "2026-02-07")
11+
(project "im-docs")
12+
(repo "github.com/hyperpolymath/im-docs"))
13+
14+
(project-context
15+
(name "Wayfinder")
16+
(tagline "Epistemic Infrastructure for Journalism")
17+
(tech-stack ("AsciiDoc" "Markdown" "Obsidian" "TiddlyWiki" "Notion"))
18+
(future-stack ("SvelteKit" "PostgreSQL" "Graph-DB" "D3.js")))
19+
20+
(current-position
21+
(phase "proof-of-concept")
22+
(overall-completion 15)
23+
(components
24+
("PROMPT framework" . "complete")
25+
("Level 1-4 pathway design" . "complete")
26+
("Cognitive science integration" . "complete")
27+
("SWOT analysis" . "complete")
28+
("Technical architecture planning" . "complete"))
29+
(working-features
30+
("Conceptual framework"
31+
"Boundary objects theory application"
32+
"Heutagogic design")))
33+
34+
(route-to-mvp
35+
(milestones
36+
(("Week 1" . "Document Level 1 pathway, create evidence mapping template, build example")
37+
("Week 2" . "Share with 3 journalist friends for feedback")
38+
("Week 3" . "Build simple website (GitLab Pages)")
39+
("Week 4" . "First 5-10 participants start Level 1")
40+
("Phase 2 (3-9 months)" . "SvelteKit + PostgreSQL + graph database custom platform")
41+
("Phase 3 (9-18 months)" . "Ecosystem building, community tools"))))
42+
43+
(blockers-and-issues
44+
(critical)
45+
(high)
46+
(medium)
47+
(low))
48+
49+
(critical-next-actions
50+
(immediate
51+
("Develop Level 1 materials and evidence mapping templates"))
52+
(this-week
53+
("Create first example investigation"
54+
"Document capability pathway"))
55+
(this-month
56+
("Share with initial journalist beta testers"
57+
"Build GitLab Pages website")))
58+
59+
(session-history
60+
(("2026-02-07" . "RSR compliance: added .machine_readable structure, fixed workflows, removed duplicates"))))

0 commit comments

Comments
 (0)