with one click
analyze
Analyze Project
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Analyze Project
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Canonical turn protocol for agents writing to Neotoma. Bounded retrieval on the user message, store user message PART_OF conversation with REFERS_TO edges to retrieved entities, store assistant reply the same way. Use this skill in any agent loop that should persist conversation state to Neotoma.
Session-end audit. Files remaining work as task entities and lists them as bullets, verifies all data intended for Neotoma storage from this session is actually stored, and persists what's missing. Invoke at the natural close of a working session, before context is lost.
Mid-session status report. Summarizes what's been achieved so far this session and what work remains, in succinct qualitative prose and bullets with only light technical detail. Read-only — stores nothing, files nothing. Invoke any time to take stock without closing the session.
Close a Neotoma working session — store the assistant reply and a session-close summary.
Retrieve the bounded context for the current session — recent interactions and relevant entities.
Begin a Neotoma working session — open a conversation and record the opening interaction.
| name | analyze |
| description | Analyze Project |
name: analyze description: Analyze codebase or context per foundation analyze command. triggers:
Analyze any project (URL or term) from both competitive and partnership perspectives relative to all repositories (comparative analysis across your repos). Load repo list from the truth layer (per neotoma_parquet_migration_rules.mdc).
analyze <url_or_term>
Accepts:
analyze https://memorae.ai)analyze memorae.ai)analyze "memory layer productivity")Examples:
analyze memorae.aianalyze https://memorae.aianalyze "memory layer productivity tool"This command performs systematic analysis following the framework defined in foundation/strategy/project_assessment_framework.md. The analysis type depends on the resource:
For Products/Projects:
neotoma_parquet_migration_rules.mdc)For Content/Thought Leadership (Articles, Research, etc.):
neotoma_parquet_migration_rules.mdc)Output:
docs/private/competitive/[target_name]_competitive_analysis.mddocs/private/partnerships/[target_name]_partnership_analysis.mddocs/private/insights/[target_name]_relevance_analysis.mdObjective: Load the list of all repositories so analysis is comparative across all your repos.
Actions:
Load repo list from truth layer (per neotoma_parquet_migration_rules.mdc). For repositories: Neotoma first, then Parquet with data_type="repositories". If still no records: run execution/scripts/sync_repos_to_parquet.py with DATA_DIR set, then query again; or warn that comparison will use only the current repo.
Store repo list and paths:
name, path, parent_dir, core_identity_path, product_positioning_path, problem_statement_path, philosophy_path.Critical: All subsequent discovery and comparison MUST use this repo list.
Objective: Dynamically discover identity and positioning for the current repository and for every repo in the loaded list (so analysis is comparative).
Actions:
For the current repo (workspace):
docs/foundation/core_identity.md, docs/foundation/product_positioning.md, docs/foundation/problem_statement.md, docs/foundation/philosophy.md.For each other repo in the loaded list:
path (or foundation doc paths) from the repos record. Read each repo's foundational documents from the paths in the record (e.g. core_identity_path, philosophy_path) when those files exist.name.Handle missing docs:
Store discovered context keyed by repo name:
Critical: ALL subsequent analysis will compare the target against every repo's discovered context (comparative analysis across all repos).
Objective: Gather comprehensive information about the target and determine resource type
Actions:
https://chatgpt.com/share/... or https://chatgpt.com/c/...https://twitter.com/.../status/... or https://x.com/.../status/...1a. If web scraper supported URL:
scrape_content MCP tool with the URLurl: The target URLmethod: "auto" (default, tries methods in order)1b. If not web scraper supported or search term:
Determine resource type:
If Product/Project: Proceed to Steps 3-4 (Competitive & Partnership Analysis)
If Content/Thought Leadership: Proceed to Step 3a (Relevance Analysis)
Extract basic information:
For Products/Projects:
For Content/Thought Leadership:
Analyze technology stack:
Document business model:
Identify positioning:
Research additional context (optional):
Document all findings for use in templates.
Objective: Create holistic relevance analysis document for non-product resources
Actions:
Load template:
foundation/strategy/relevance_analysis_template.mdFill out all sections:
Key areas to analyze:
Generate filename:
[target_name]_relevance_analysis.mdSave document:
docs/private/insights/docs/private/insights/[target_name]_relevance_analysis.mdSkip Steps 3-4 if resource is Content/Thought Leadership.
Objective: Create competitive assessment document
Actions:
Load template:
foundation/strategy/competitive_analysis_template.mdFill out all sections:
Key assessments to make:
Special focus: Defensible Differentiation
Generate filename:
[target_name]_competitive_analysis.mdSave document:
docs/private/competitive/docs/private/competitive/[target_name]_competitive_analysis.mdObjective: Create partnership assessment document
Actions:
Load template:
foundation/strategy/partnership_analysis_template.mdFill out all sections:
Key assessments to make:
Integration scenarios (required):
Risk assessment:
Generate filename:
[target_name]_partnership_analysis.mdSave document:
docs/private/partnerships/docs/private/partnerships/[target_name]_partnership_analysis.mdObjective: Deliver concise summary to user
Actions:
If Product/Project - Present competitive summary:
## Competitive Analysis: [Target] vs. [Current Repo]
**Overall Assessment:** [Direct / Adjacent / Complementary / None]
**Risk Level:** [High / Medium / Low / None]
**Key Insights:**
- [Insight 1]
- [Insight 2]
- [Insight 3]
**Strategic Recommendations:**
- [Recommendation 1]
- [Recommendation 2]
**Full analysis:** `docs/private/competitive/[target_name]_competitive_analysis.md`
If Product/Project - Present partnership summary:
## Partnership Analysis: [Target] partnership with [Current Repo]
**Overall Assessment:** [High / Moderate / Low / Not Viable]
**Integration Feasibility:** [High / Medium / Low / Not Feasible]
**Partnership Recommendation:** [Pursue / Explore / Monitor / Pass]
**Key Opportunities:**
- [Opportunity 1]
- [Opportunity 2]
**Next Steps:**
- [Step 1]
- [Step 2]
**Full analysis:** `docs/private/partnerships/[target_name]_partnership_analysis.md`
If Content/Thought Leadership - Present relevance summary:
## Relevance Analysis: [Resource] relevance to [Current Repo]
**Overall Relevance:** [High / Moderate / Low / Not Relevant]
**Primary Relevance Areas:**
- [Area 1]
- [Area 2]
- [Area 3]
**Key Insights:**
- [Insight 1]
- [Insight 2]
- [Insight 3]
**Actionable Recommendations:**
- [Recommendation 1]
- [Recommendation 2]
**Full analysis:** `docs/private/insights/[target_name]_relevance_analysis.md`
Provide file paths:
If no foundational docs exist:
Analysis will proceed without repo-specific context.
Recommendation: Create foundational documents for better analysis:
- docs/foundation/core_identity.md
- docs/foundation/product_positioning.md
- docs/foundation/problem_statement.md
Proceed? (yes/no)
If URL cannot be accessed:
❌ Error: Cannot access URL "[url]"
Options:
1. Try web search for "[term]"
2. Provide alternative URL
3. Cancel analysis
Enter choice (1/2/3):
If docs/private/ doesn't exist:
Output will be saved to:
- docs/competitive/[target_name]_competitive_analysis.md
- docs/partnerships/[target_name]_partnership_analysis.md
Recommendation: Set up private docs submodule.
See: foundation/README.md (Private Docs Submodule Setup)
Proceed? (yes/no)
If web scraper URL is provided but MCP server is not configured:
Falling back to browser tools for research.
To enable web scraper for ChatGPT/Twitter URLs:
1. Add web scraper submodule: git submodule add https://github.com/markmhendrickson/mcp-server-web-scraper.git mcp/web-scraper
2. Configure in .cursor/mcp.json (see Configuration section)
Proceeding with browser tools...
If web scraper MCP tool fails:
Error: [error message]
Falling back to browser tools...
Proceeding with browser tools...
Web Scraper MCP Server Setup:
The analyze command automatically uses the web scraper MCP server for ChatGPT and Twitter/X URLs when configured. To set up:
Add web scraper as submodule (if not already added):
git submodule add https://github.com/markmhendrickson/mcp-server-web-scraper.git mcp/web-scraper
git submodule update --init mcp/web-scraper
Install dependencies:
cd mcp/web-scraper
pip install -r requirements.txt
playwright install chromium
Configure in .cursor/mcp.json:
{
"mcpServers": {
"web-scraper": {
"command": "/absolute/path/to/mcp/web-scraper/run-web-scraper-mcp.sh",
"cwd": "/absolute/path/to/mcp/web-scraper"
}
}
}
Optional: Configure Apify API token (for Apify scraping method):
APIFY_API_TOKEN environment variable, orSupported URLs:
https://chatgpt.com/share/... or https://chatgpt.com/c/...https://twitter.com/.../status/... or https://x.com/.../status/...Note: If web scraper MCP server is not configured, the command will fall back to browser tools for all URLs.
Optional configuration in foundation-config.yaml:
strategy:
competitive_analysis:
enabled: true
output_directory: "docs/private/competitive/"
partnership_analysis:
enabled: true
output_directory: "docs/private/partnerships/"
relevance_analysis:
enabled: true
output_directory: "docs/private/insights/"
private_docs:
enabled: true
repo_url: "https://github.com/user/private-docs.git"
path: "docs/private"
If configuration doesn't exist, use defaults:
docs/private/competitive/docs/private/partnerships/docs/private/insights/foundation/strategy/project_assessment_framework.md - Complete assessment methodologyfoundation/strategy/competitive_analysis_template.md - Competitive analysis template (for products/projects)foundation/strategy/partnership_analysis_template.md - Partnership analysis template (for products/projects)foundation/strategy/relevance_analysis_template.md - Relevance analysis template (for content/thought leadership)foundation/strategy/README.md - Strategy evaluation framework overviewneotoma_parquet_migration_rules.mdc). Parquet fallback: data_type="repositories"; if empty, run execution/scripts/sync_repos_to_parquet.py (with DATA_DIR set).