AGENTS.md as Project Memory
-
AGENTS.md is an open standard for guiding AI coding agents.
+
AGENTS.md is an open standard for guiding AI coding agents.
The file lives in your repository root and is read automatically at the start of every session.
It serves as the project memory: coding conventions, architectural decisions, file structure, and pointers to important documents.
diff --git a/docs/workflow-diagram.png b/docs/workflow-diagram.png
new file mode 100644
index 0000000..db2cfe3
Binary files /dev/null and b/docs/workflow-diagram.png differ
diff --git a/scripts/render-docs.js b/scripts/render-docs.js
index 4a908d3..bea5c83 100644
--- a/scripts/render-docs.js
+++ b/scripts/render-docs.js
@@ -100,6 +100,8 @@ function copyHtmlDoc(srcPath, destPath) {
'#/anchor/'
)
html = html.replace(/https:\/\/llm-coding\.github\.io\/Semantic-Anchors\//g, '#/')
+ // Fix relative image paths for SPA context (content is injected at root level)
+ html = html.replace(/src="([^"/][^"]*\.(png|jpg|svg|gif))"/g, 'src="docs/$1"')
fs.writeFileSync(destPath, html, 'utf-8')
console.log(`Copied: ${path.relative(ROOT, destPath)}`)
} catch (err) {
@@ -116,3 +118,10 @@ copyHtmlDoc(
path.join(ROOT, 'docs/spec-driven-workflow.de.html'),
path.join(WEB_DOCS, 'spec-driven-workflow.de.html')
)
+
+// Copy assets referenced by workflow docs
+const workflowDiagram = path.join(ROOT, 'docs/workflow-diagram.png')
+if (fs.existsSync(workflowDiagram)) {
+ fs.copyFileSync(workflowDiagram, path.join(WEB_DOCS, 'workflow-diagram.png'))
+ console.log(`Copied: ${path.relative(ROOT, path.join(WEB_DOCS, 'workflow-diagram.png'))}`)
+}
diff --git a/website/index.html b/website/index.html
index afba4a7..5ee6c55 100644
--- a/website/index.html
+++ b/website/index.html
@@ -13,6 +13,9 @@
+
+
+
diff --git a/website/src/styles/asciidoctor-scoped.css b/website/src/styles/asciidoctor-scoped.css
index e012d71..4d95a14 100644
--- a/website/src/styles/asciidoctor-scoped.css
+++ b/website/src/styles/asciidoctor-scoped.css
@@ -189,9 +189,81 @@
& .admonitionblock {
margin: 1.25rem 0;
- padding: 1rem;
border-left: 4px solid;
background: #f5f5f5;
+ border-radius: 0.25rem;
+ }
+
+ & .admonitionblock > table {
+ border-collapse: separate;
+ border: 0;
+ background: none;
+ width: 100%;
+ margin: 0;
+ }
+
+ & .admonitionblock > table td {
+ border: 0;
+ }
+
+ & .admonitionblock > table td.icon {
+ text-align: center;
+ width: 80px;
+ vertical-align: middle;
+ }
+
+ & .admonitionblock > table td.icon i {
+ font-size: 2.5em;
+ text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
+ cursor: default;
+ }
+
+ & .admonitionblock > table td.icon .icon-note::before {
+ content: '\f05a';
+ font-family: FontAwesome;
+ color: #19407c;
+ }
+
+ & .admonitionblock > table td.icon .icon-tip::before {
+ content: '\f0eb';
+ font-family: FontAwesome;
+ text-shadow: 1px 1px 2px rgba(155, 155, 0, 0.8);
+ color: #111;
+ }
+
+ & .admonitionblock > table td.icon .icon-warning::before {
+ content: '\f071';
+ font-family: FontAwesome;
+ color: #bf6900;
+ }
+
+ & .admonitionblock > table td.icon .icon-caution::before {
+ content: '\f06d';
+ font-family: FontAwesome;
+ color: #bf3400;
+ }
+
+ & .admonitionblock > table td.icon .icon-important::before {
+ content: '\f06a';
+ font-family: FontAwesome;
+ color: #bf0000;
+ }
+
+ & .admonitionblock > table td.icon .title {
+ font-weight: bold;
+ font-family: 'Open Sans', 'DejaVu Sans', sans-serif;
+ text-transform: uppercase;
+ }
+
+ & .admonitionblock > table td.content {
+ padding: 1rem 1.25rem;
+ border-left: 1px solid #dddddf;
+ color: rgba(0, 0, 0, 0.6);
+ word-wrap: anywhere;
+ }
+
+ & .admonitionblock > table td.content > :last-child > :last-child {
+ margin-bottom: 0;
}
& .admonitionblock.note {