<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://wiki.scriptlog.my.id/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://wiki.scriptlog.my.id/feed.php">
        <title>Scriptlog Documentation</title>
        <description>Code reference for the Scriptlog codebase</description>
        <link>http://wiki.scriptlog.my.id/</link>
        <image rdf:resource="http://wiki.scriptlog.my.id/lib/exe/fetch.php?media=wiki:logo.png" />
       <dc:date>2026-10-01T15:20:17+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:architecture:overview&amp;rev=1790560861&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=wiki:syntax&amp;rev=1790559955&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=wiki:welcome&amp;rev=1790559955&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=wiki:dokuwiki&amp;rev=1790559955&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=playground:playground&amp;rev=1790559955&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:start&amp;rev=1790559039&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:index&amp;rev=1790559039&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:core:bootstrap:common&amp;rev=1790559039&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:core:root&amp;rev=1790559039&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:core:root:structarmed&amp;rev=1790559039&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:core:root:structarmed-baseline&amp;rev=1790559039&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:admin&amp;rev=1790559039&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:admin:privacy-policy&amp;rev=1790559039&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:lib:utility&amp;rev=1790559039&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:lib:service&amp;rev=1790559038&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?image=apple-touch-icon.png&amp;ns=0&amp;rev=1790554559&amp;tab_details=history&amp;media_do=diff&amp;do=media"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:lib:core:htmlpurifier&amp;rev=1790415804&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:nonfunctional:requirements&amp;rev=1790415297&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:nonfunctional:negative-space&amp;rev=1790415297&amp;do=diff"/>
                <rdf:li rdf:resource="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:nonfunctional:limits&amp;rev=1790415297&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://wiki.scriptlog.my.id/lib/exe/fetch.php?media=wiki:logo.png">
        <title>Scriptlog Documentation</title>
        <link>http://wiki.scriptlog.my.id/</link>
        <url>http://wiki.scriptlog.my.id/lib/exe/fetch.php?media=wiki:logo.png</url>
    </image>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:architecture:overview&amp;rev=1790560861&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-28T02:01:01+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>overview - admin</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=scriptlog:architecture:overview&amp;rev=1790560861&amp;do=diff</link>
        <description>Architecture Overview

This page describes how Scriptlog is put together: the order in which the
application boots, how a request travels through it, and where the boundaries
between layers are supposed to be. Every statement here is traceable to the
generated reference pages linked throughout.</description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=wiki:syntax&amp;rev=1790559955&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-28T01:45:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>syntax - remove stock DokuWiki page</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=wiki:syntax&amp;rev=1790559955&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=wiki:welcome&amp;rev=1790559955&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-28T01:45:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>welcome - remove stock DokuWiki page</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=wiki:welcome&amp;rev=1790559955&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=wiki:dokuwiki&amp;rev=1790559955&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-28T01:45:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dokuwiki - remove stock DokuWiki page</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=wiki:dokuwiki&amp;rev=1790559955&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=playground:playground&amp;rev=1790559955&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-28T01:45:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>playground - remove stock DokuWiki page</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=playground:playground&amp;rev=1790559955&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:start&amp;rev=1790559039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-28T01:30:39+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>start - admin</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=scriptlog:start&amp;rev=1790559039&amp;do=diff</link>
        <description>Scriptlog Source Documentation

This wiki documents the Scriptlog codebase as it exists on disk. It is generated directly from the PHP source by static analysis, so it describes what the code does rather than what it was intended to do.

What is covered</description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:index&amp;rev=1790559039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-28T01:30:39+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>index - admin</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=scriptlog:index&amp;rev=1790559039&amp;do=diff</link>
        <description>Documentation Index

The module pages and per-class pages under this namespace are generated from the Scriptlog source tree by `tools/gendoc`. This index, the start page and the module pages are generated too. The pages listed below are hand written, and are kept as wikitext in `tools/gendoc/pages/`.</description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:core:bootstrap:common&amp;rev=1790559039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-28T01:30:39+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>common - admin</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=scriptlog:core:bootstrap:common&amp;rev=1790559039&amp;do=diff</link>
        <description>lib/common.php

Source: lib/common.php &amp;middot; 79 lines, ~661 statements &amp;middot; namespace: (global) &amp;middot; `declare(strict_types=1)`: no

----------

Constants
 Name  Value / expression  Line  (&#039;DS&#039;, DIRECTORY_SEPARATOR  define(&#039;DS&#039;, DIRECTORY_SEPARATOR)</description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:core:root&amp;rev=1790559039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-28T01:30:39+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>root - admin</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=scriptlog:core:root&amp;rev=1790559039&amp;do=diff</link>
        <description>Root Bootstrap Files

The procedural files in the project root: the front controller, configuration, feeds and standalone utilities. These are the files a web server can be pointed straight at.

----------

Types (0)

No types in this module.

Files (15)</description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:core:root:structarmed&amp;rev=1790559039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-28T01:30:39+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>structarmed - admin</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=scriptlog:core:root:structarmed&amp;rev=1790559039&amp;do=diff</link>
        <description>structarmed.php

Source: structarmed.php &amp;middot; 102 lines, ~391 statements &amp;middot; namespace: (global) &amp;middot; `declare(strict_types=1)`: no

----------

StructArmed Advisory Configuration - Scriptlog/Blogware

Status: advisory and report-only. No CI gate. No pre-commit gate.
Companion plan: plan/STRUCTARMED_IMPLEMENTATION_PLAN.md
Evidence: report/STRUCTARMED_ADVISORY_REPORT.md</description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:core:root:structarmed-baseline&amp;rev=1790559039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-28T01:30:39+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>structarmed-baseline - admin</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=scriptlog:core:root:structarmed-baseline&amp;rev=1790559039&amp;do=diff</link>
        <description>structarmed-baseline.php

Source: structarmed-baseline.php &amp;middot; 6440 lines, ~27585 statements &amp;middot; namespace: (global) &amp;middot; `declare(strict_types=1)`: yes

----------

----------

Generated by &#039;tools/gendoc&#039;.</description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:admin&amp;rev=1790559039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-28T01:30:39+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>admin - admin</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=scriptlog:admin&amp;rev=1790559039&amp;do=diff</link>
        <description>Admin UI (admin/)

Procedural page scripts for the back office. There is no admin front controller and no admin router: each file is an independently reachable request handler.

----------

Types (1)
 Kind  Modifier  Type  Methods  Props  Consts  LOC</description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:admin:privacy-policy&amp;rev=1790559039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-28T01:30:39+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>privacy-policy - admin</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=scriptlog:admin:privacy-policy&amp;rev=1790559039&amp;do=diff</link>
        <description>admin/privacy-policy.php

Source: admin/privacy-policy.php &amp;middot; 171 lines, ~1015 statements &amp;middot; namespace: (global) &amp;middot; `declare(strict_types=1)`: no

----------

Includes
 Mode  Target  Line  include  include dirname(FILE) . DS . &#039;ui&#039; . DS . &#039;privacy&#039; . DS . &#039;privacy-policy-form.php&#039;;</description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:lib:utility&amp;rev=1790559039&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-28T01:30:39+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>utility - admin</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=scriptlog:lib:utility&amp;rev=1790559039&amp;do=diff</link>
        <description>Utility Layer

Flat, stateless, one-function-per-file helpers. Namespaces are not used here; these are global functions loaded by the autoloader on demand.

----------

Types (10)
 Kind  Modifier  Type  Methods  Props  Consts  LOC  Summary  class</description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:lib:service&amp;rev=1790559038&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-28T01:30:38+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>service - admin</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=scriptlog:lib:service&amp;rev=1790559038&amp;do=diff</link>
        <description>Service Layer

Business logic and transaction boundaries. Services orchestrate DAOs, enforce authorisation and validation outcomes, and are the unit at which a business operation either completes or fails.

----------

Types (24)
 Kind  Modifier  Type</description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?image=apple-touch-icon.png&amp;ns=0&amp;rev=1790554559&amp;tab_details=history&amp;media_do=diff&amp;do=media">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-28T00:15:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>apple-touch-icon.png - created - external edit</title>
        <link>http://wiki.scriptlog.my.id/doku.php?image=apple-touch-icon.png&amp;ns=0&amp;rev=1790554559&amp;tab_details=history&amp;media_do=diff&amp;do=media</link>
        <description>&lt;img src=&quot;http://wiki.scriptlog.my.id/lib/exe/fetch.php?w=500&amp;amp;h=500&amp;amp;tok=0d5194&amp;amp;media=apple-touch-icon.png&quot; alt=&quot;apple-touch-icon.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:lib:core:htmlpurifier&amp;rev=1790415804&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-26T09:43:24+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>htmlpurifier - admin</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=scriptlog:lib:core:htmlpurifier&amp;rev=1790415804&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:nonfunctional:requirements&amp;rev=1790415297&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-26T09:34:57+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>requirements - admin</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=scriptlog:nonfunctional:requirements&amp;rev=1790415297&amp;do=diff</link>
        <description>Requirements

What Scriptlog requires to run, and which of those requirements are enforced by
the code rather than merely hoped for.

1. Platform and runtime

	*  PHP 7.4 – 8.5. The `develop` branch CI runs the unit suite on PHP 8.1, and a pre-commit hook runs a PHP 7.4-compatibility ruleset on staged files. The hook explicitly refuses to be bypassed.</description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:nonfunctional:negative-space&amp;rev=1790415297&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-26T09:34:57+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>negative-space - admin</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=scriptlog:nonfunctional:negative-space&amp;rev=1790415297&amp;do=diff</link>
        <description>Negative Space and Dead Code

Code that exists, is fully documented, and is never reached. This page is the
one place where the reference generator&#039;s own limits matter most, so the
method is stated before the findings.

Method, and why it is only a candidate list</description>
    </item>
    <item rdf:about="http://wiki.scriptlog.my.id/doku.php?id=scriptlog:nonfunctional:limits&amp;rev=1790415297&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-09-26T09:34:57+00:00</dc:date>
        <dc:creator>admin (admin@undisclosed.example.com)</dc:creator>
        <title>limits - admin</title>
        <link>http://wiki.scriptlog.my.id/doku.php?id=scriptlog:nonfunctional:limits&amp;rev=1790415297&amp;do=diff</link>
        <description>Limits and Non-behaviour

The generated reference says what each class does. This page records the
things it deliberately does not do, and the bounds that are fixed in code
rather than configuration.

1. Configuration is a hard precondition, not a fallback</description>
    </item>
</rdf:RDF>
