| id | how-to-submit-guide | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| slug | how-to-submit | ||||||||
| title | How to Submit to Frame Codex | ||||||||
| summary | Complete guide to contributing knowledge to Frame Codex using the submission UI, GitHub, or manual PR creation | ||||||||
| version | 1.0.0 | ||||||||
| contentType | markdown | ||||||||
| difficulty | beginner | ||||||||
| taxonomy |
|
||||||||
| tags |
|
||||||||
| publishing |
|
Welcome! This guide will walk you through the different ways to contribute knowledge to Frame Codex.
The easiest way to submit content is through our enhanced contribution modal at frame.dev/codex:
- Click the green "Contribute" button in the Codex viewer toolbar
- Fill in your content (title, summary, markdown body)
- Specify or leave blank weave/loom for AI suggestion
- Add tags (or use suggested tags from content analysis)
- Choose difficulty level (beginner/intermediate/advanced/expert)
- Toggle AI enhancement (optional, explains cost vs free static NLP)
- Preview final markdown with frontmatter
- Click "Create Pull Request" (uses GitHub API if you provide PAT, or opens GitHub editor)
That's it! Our automated validation runs, and maintainers review your submission.
Best for: Quick submissions, beginners, anyone without Git expertise
The enhanced contribution modal provides:
- ✅ Pre-filled metadata based on current context
- ✅ Tag suggestions from content analysis
- ✅ Weave/loom inference (or manual override)
- ✅ AI enhancement toggle (optional, cost-transparent)
- ✅ Direct GitHub PR creation via API
- ✅ Fallback to GitHub web editor (no PAT required)
- ✅ Preview step showing final markdown
- ✅ No local setup required
Steps:
-
Open Contribution Modal
- Go to frame.dev/codex
- Click the green "Contribute" button in the toolbar
- Or use quick actions dropdown (mobile)
-
Fill in Content
- Title: Clear, descriptive title (required)
- Summary: 20-300 character abstract (required)
- Content: Write or paste markdown (minimum 100 characters, required)
-
Specify Location (Optional - AI can suggest if left blank)
- Weave: Which knowledge universe (e.g., technology, science, community)
- Loom: Topic collection (e.g., programming, algorithms)
- System auto-detects from current path or suggests based on content
-
Add Metadata
- Tags: Type and press Enter, or click suggested tags from content analysis
- Difficulty: Select beginner/intermediate/advanced/expert
- Subjects/Topics: Auto-suggested from controlled vocabulary
-
AI Enhancement (Optional)
- Toggle ON: AI analyzes content, suggests better categorization (~$0.01-0.20 cost)
- Toggle OFF: Static NLP only (free, still provides quality validation)
-
GitHub PAT (Optional)
- Provide token for direct API PR creation
- Token is used only in your browser to call GitHub APIs directly and is never stored in localStorage, IndexedDB, SQL, or on any Frame.dev server
- Leave blank to open GitHub web editor instead
-
Preview & Submit
- Review generated markdown with frontmatter
- See final file path:
weaves/{weave}/{loom}/{slug}.md - Click "Create Pull Request"
- Summary (extractive summarization)
- Tags (TF-IDF keyword extraction)
- Difficulty level (heuristic detection)
- Subjects and topics (vocabulary matching)
- Edit any field as needed
-
Provide GitHub Token
- Create a Personal Access Token with
reposcope - Paste it into the token field in the Frame Codex UI
- The token lives only in that browser tab’s memory while the modal is open, is never persisted in local storage / IndexedDB / SQL, and is sent only to GitHub (never to any Frame.dev backend)
- Create a Personal Access Token with
-
Submit
- Click "Create Pull Request"
- A new PR will be created on GitHub
- You'll receive a link to track the review
Rate Limits:
- 5 submissions per hour per user
- Resets automatically after 60 minutes
Best for: Bulk submissions, complex content, experienced contributors
Steps:
-
Fork the Repository
gh repo fork framerslab/codex --clone cd codex -
Create a Branch
git checkout -b add-my-content
-
Add Your Content
- Place files directly within the target weave. Any folder becomes a loom, and any markdown file becomes a strand:
weaves/ [weave-name]/ weave.yaml overview.md # Strand at weave root [loom-folder]/ # e.g. guides/, research/, notes/ loom.yaml (optional) your-content.md nested/topic/advanced.md # Nested looms are allowed - See submission-schema.md for required metadata
- Place files directly within the target weave. Any folder becomes a loom, and any markdown file becomes a strand:
-
Validate Locally
npm install npm run validate npm run index -- --validate
-
Commit and Push
git add . git commit -m "feat: add [your content title]" git push origin add-my-content
-
Create Pull Request
gh pr create --title "Add: [Your Content Title]" --body "Description of your contribution"
Best for: Single file submissions, quick edits
- Navigate to github.com/framerslab/codex
- Click "Add file" → "Create new file"
- Enter the file path:
weaves/[weave]/[optional-folders]/your-file.md - Add your content with frontmatter (see schema below)
- Scroll down and select "Create a new branch for this commit"
- Click "Propose new file"
- Fill in the PR template and submit
✅ Required Fields:
id: Unique UUID (generate at uuidgenerator.net)slug: URL-friendly identifier (lowercase, hyphens)title: Clear, descriptive title (3-100 characters)summary: Brief abstract (20-300 characters)version: Semantic version (e.g.,1.0.0)contentType: One ofmarkdown,code,data,mediadifficulty: One ofbeginner,intermediate,advanced,expert
✅ Quality Standards:
- Minimum 100 characters of meaningful content
- No placeholder text (test content, unfinished sections)
- Proper formatting and structure
- Spell-checked and grammar-checked
✅ Licensing:
- Content must be original or properly licensed
- Will be published under CC-BY-4.0
- Provide attribution for external sources
💡 Enhance Discoverability:
tags: Keywords for search (5-10 recommended)taxonomy.subjects: High-level categoriestaxonomy.topics: Specific topic areasrelationships.requires: Prerequisitesrelationships.references: Related contentrelationships.seeAlso: External resources
Here's a complete example of a well-formatted strand:
---
id: 550e8400-e29b-41d4-a716-446655440000
slug: intro-to-recursion
title: "Introduction to Recursion in Programming"
summary: "Learn the fundamentals of recursive functions, base cases, and common patterns with practical examples"
version: "1.0.0"
contentType: markdown
difficulty: intermediate
taxonomy:
subjects: [technology, knowledge]
topics: [getting-started, best-practices]
tags: [recursion, programming, algorithms, computer-science, functions]
relationships:
requires:
- functions-basics
- control-flow
references:
- algorithm-complexity
seeAlso:
- https://en.wikipedia.org/wiki/Recursion_(computer_science)
publishing:
created: "2025-01-15T00:00:00Z"
updated: "2025-01-15T00:00:00Z"
status: published
---
# Introduction to Recursion in Programming
Recursion is a powerful programming technique where a function calls itself to solve a problem by breaking it down into smaller, similar subproblems.
## Key Concepts
### Base Case
Every recursive function must have a base case—a condition that stops the recursion...
[Rest of your content here]Frame Codex includes several automated systems to help ensure quality:
- Runs on every commit to
main - Extracts keywords using TF-IDF
- Generates search index
- Suggests vocabulary additions
- Matches content against controlled vocabulary
- Suggests subjects and topics
- Provides confidence scores
- Schema compliance checks
- Required field verification
- Content quality analysis
- Duplicate detection
- Analyzes content quality (0-100 score)
- Suggests missing metadata
- Recommends structural improvements
- Can auto-apply safe fixes (with
auto-enhancelabel)
-
Automated Checks (instant)
- Schema validation
- Quality checks
- Duplicate detection
- NLP analysis
-
AI Review (1-2 minutes)
- Content analysis
- Metadata suggestions
- Quality scoring
- Posted as PR comments
-
Human Review (1-7 days)
- Maintainer review
- Community feedback
- Revisions if needed
- Approval and merge
After 5+ high-quality contributions, you can become a Trusted Weaver:
- ✅ Auto-approval after validation passes
- ✅ Instant merge (no waiting)
- ✅ Direct commit access (optional)
To become a Weaver, maintain high quality and request nomination from maintainers.
- Be Specific: Focus on one topic per strand
- Be Clear: Use simple language, define jargon
- Be Complete: Cover the topic thoroughly
- Be Accurate: Fact-check and cite sources
- Be Original: Add unique insights or examples
- Descriptive Titles: Make it immediately clear what the content covers
- Concise Summaries: One sentence that captures the essence
- Relevant Tags: Use existing vocabulary when possible
- Proper Difficulty: Be honest about complexity level
- Link Relationships: Connect to prerequisites and related content
- Use Markdown: Leverage headings, lists, code blocks
- Add Examples: Include practical code or scenarios
- Include Visuals: Diagrams, charts (as SVG or PNG)
- Structure Well: Logical flow, clear sections
- Proofread: Check spelling, grammar, formatting
"Missing required field: title"
- Add
title: "Your Title"to frontmatter
"ID must be a valid UUID"
- Generate a new UUID at uuidgenerator.net
- Format:
550e8400-e29b-41d4-a716-446655440000
"Content is very short (< 100 characters)"
- Expand your content with more detail and examples
"Contains TODO/FIXME comments"
- Remove unfinished comments before submitting
"Rate limit exceeded. Try again in X minutes"
- Wait for the rate limit to reset
- Use GitHub direct method for bulk submissions
"Failed to create PR: Bad credentials"
- Verify your GitHub token is correct
- Ensure token has
reposcope - Generate a new token if expired
- 💬 Discord: wilds.ai/discord
- 📧 Email: team@frame.dev
- 🐛 Issues: github.com/framerslab/codex/issues
- 📚 Docs: frame.dev/codex/docs
- ✅ Read the Submission Schema Guide
- ✅ Browse existing content for examples
- ✅ Start with a small, focused contribution
- ✅ Join our Discord for questions
- ✅ Work towards becoming a Trusted Weaver!
Thank you for contributing to Frame Codex—the codex of humanity! 🌟