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
46 changes: 46 additions & 0 deletions .github/workflows/docs-links.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Docs Links

on:
push:
branches: [main, develop]
paths:
- "README.md"
- "docs/**"
- ".github/workflows/docs-links.yaml"
pull_request:
branches: [main, develop]
paths:
- "README.md"
- "docs/**"
- ".github/workflows/docs-links.yaml"

permissions:
contents: read

jobs:
readme-links:
name: README link check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Verify relative .md links in README resolve
run: |
python3 - <<'PY'
import re, os, sys
text = open("README.md").read()
bad = []
for m in re.finditer(r"\[([^\]]+)\]\(([^)]+\.md)(#[^)]*)?\)", text):
label, target = m.group(1), m.group(2)
if target.startswith("http"):
continue
resolved = os.path.normpath(os.path.join(".", target))
if not os.path.exists(resolved):
bad.append(f" [{label}]({target})")
if bad:
print("Broken relative .md links in README.md:")
for line in bad:
print(line)
sys.exit(1)
print("README.md: all relative .md links resolve")
PY
40 changes: 20 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ forge init my-agent && cd my-agent && forge run
forge run --with slack
```

See [Quick Start](docs/quickstart.md) for the full walkthrough, or [Installation](docs/installation.md) for all methods.
See [Quick Start](docs/getting-started/quick-start.md) for the full walkthrough, or [Installation](docs/getting-started/installation.md) for all methods.

## How It Works

Expand Down Expand Up @@ -73,42 +73,42 @@ You write a `SKILL.md`. Forge compiles it into a secure, runnable agent with egr

| Document | Description |
|----------|-------------|
| [Quick Start](docs/quickstart.md) | Get an agent running in 60 seconds |
| [Installation](docs/installation.md) | Homebrew, binary, and Windows install |
| [Architecture](docs/architecture.md) | System design, module layout, and data flows |
| [Quick Start](docs/getting-started/quick-start.md) | Get an agent running in 60 seconds |
| [Installation](docs/getting-started/installation.md) | Homebrew, binary, and Windows install |
| [Architecture](docs/core-concepts/how-forge-works.md) | System design, module layout, and data flows |

### Core Concepts

| Document | Description |
|----------|-------------|
| [Skills](docs/skills.md) | Skill definitions, registry, and compilation |
| [Tools](docs/tools.md) | Built-in tools, adapters, and custom tools |
| [Runtime](docs/runtime.md) | LLM providers, fallback chains, running modes |
| [Memory](docs/memory.md) | Session persistence and long-term memory |
| [Channels](docs/channels.md) | Slack and Telegram adapter setup |
| [Scheduling](docs/scheduling.md) | Cron configuration and schedule tools |
| [Skills](docs/skills/writing-custom-skills.md) | Skill definitions, registry, and compilation |
| [Tools](docs/core-concepts/tools-and-builtins.md) | Built-in tools, adapters, and custom tools |
| [Runtime](docs/core-concepts/runtime-engine.md) | LLM providers, fallback chains, running modes |
| [Memory](docs/core-concepts/memory-system.md) | Session persistence and long-term memory |
| [Channels](docs/core-concepts/channels.md) | Slack and Telegram adapter setup |
| [Scheduling](docs/core-concepts/scheduling.md) | Cron configuration and schedule tools |

### Security

| Document | Description |
|----------|-------------|
| [Security Overview](docs/security/overview.md) | Complete security architecture |
| [Egress Security](docs/security/egress.md) | Egress enforcement deep dive |
| [Secrets](docs/security/secrets.md) | Encrypted secret management |
| [Build Signing](docs/security/signing.md) | Ed25519 signing and verification |
| [Egress Security](docs/security/egress-control.md) | Egress enforcement deep dive |
| [Secrets](docs/security/secret-management.md) | Encrypted secret management |
| [Build Signing](docs/security/build-signing.md) | Ed25519 signing and verification |
| [Guardrails](docs/security/guardrails.md) | Content filtering and PII detection |

### Operations

| Document | Description |
|----------|-------------|
| [Commands](docs/commands.md) | Full CLI reference |
| [Configuration](docs/configuration.md) | `forge.yaml` schema and environment variables |
| [Dashboard](docs/dashboard.md) | Web UI features and architecture |
| [Deployment](docs/deployment.md) | Container packaging, Kubernetes, air-gap |
| [Hooks](docs/hooks.md) | Agent loop hook system |
| [Plugins](docs/plugins.md) | Framework plugin system |
| [Command Integration](docs/command-integration.md) | Initializ Command platform guide |
| [Commands](docs/reference/cli-reference.md) | Full CLI reference |
| [Configuration](docs/reference/forge-yaml-schema.md) | `forge.yaml` schema and environment variables |
| [Dashboard](docs/reference/web-dashboard.md) | Web UI features and architecture |
| [Deployment](docs/deployment/kubernetes.md) | Container packaging, Kubernetes, air-gap |
| [Hooks](docs/core-concepts/hooks.md) | Agent loop hook system |
| [Plugins](docs/reference/framework-plugins.md) | Framework plugin system |
| [Command Integration](docs/reference/command-integration.md) | Initializ Command platform guide |

## Philosophy

Expand Down
Loading