# sasuke007/submit-to-directories architecture

> Architecture diagram of the GitHub repository sasuke007/submit-to-directories, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sasuke007/submit-to-directories
- Repository: https://github.com/sasuke007/submit-to-directories

## Overview

This repository packages an agent skill for finding and submitting software listings to directories. The principal workflow is product intake and research, candidate selection, browser-based submission with human handoffs, then tracking and reporting. The Python script provides a distinct catalog-filtering layer; the README documents local profile and run history. The skill instructions and catalog contents were not sampled, so their internal details and any finer-grained orchestration are not inferred.

Main entry points: [`skills/submit-to-directories/SKILL.md`](https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/SKILL.md) (Skill instructions), [`skills/submit-to-directories/scripts/list_directories.py`](https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/scripts/list_directories.py) (Candidate filter), [`skills/submit-to-directories/scripts/verify_backlink.sh`](https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/scripts/verify_backlink.sh) (Backlink verifier), [`skills/submit-to-directories/references/catalog.json`](https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/references/catalog.json) (Directory catalog)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Submission workflow"]
  node_skill["Skill instructions<br/>[SKILL.md]"]
  node_intake["Product intake<br/>[SKILL.md]"]
  node_site_research["Site and logo research<br/>[SKILL.md]"]
  node_submission["Directory submission<br/>[SKILL.md]"]
  node_handoff["Human handoff<br/>[SKILL.md]"]
  node_report["Submission report<br/>[SKILL.md]"]
end

subgraph group_research["Directory research"]
  node_catalog[("Directory catalog<br/>[catalog.json]")]
  node_filter["Candidate filter"]
  node_queue["Candidate queue"]
end

subgraph group_tracking["Tracking and checks"]
  node_profile["Private profile"]
  node_history[("Submission history")]
  node_backlink_check["Backlink verifier<br/>[verify_backlink.sh]"]
end

node_user(("Product owner"))
node_agent["Agent"]
node_browser["Agent browser"]
node_product_site["Product website"]
node_directory_sites["Directory websites"]

node_user -->|"requests listing"| node_agent
node_agent -->|"follows workflow"| node_skill
node_skill -->|"guides intake"| node_intake
node_intake -->|"collects URL"| node_site_research
node_agent -->|"operates"| node_browser
node_site_research -->|"reads site"| node_browser
node_browser -->|"reads content"| node_product_site
node_agent -->|"runs filter"| node_filter
node_filter -->|"reads records"| node_catalog
node_filter -->|"emits candidates"| node_queue
node_queue -->|"returns candidates"| node_agent
node_skill -->|"guides submissions"| node_submission
node_submission -->|"uses browser"| node_browser
node_browser -->|"submits listing"| node_directory_sites
node_submission -->|"requests assistance"| node_handoff
node_handoff -->|"requests action"| node_user
node_agent -->|"uses contact details"| node_profile
node_agent -->|"tracks submissions"| node_history
node_skill -->|"guides reporting"| node_report
node_agent -->|"runs check"| node_backlink_check
node_backlink_check -->|"checks live link"| node_directory_sites
node_agent -->|"provides results"| node_report

click node_skill "https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/SKILL.md"
click node_intake "https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/SKILL.md"
click node_site_research "https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/SKILL.md"
click node_submission "https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/SKILL.md"
click node_handoff "https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/SKILL.md"
click node_report "https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/SKILL.md"
click node_catalog "https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/references/catalog.json"
click node_filter "https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/scripts/list_directories.py"
click node_profile "https://github.com/sasuke007/submit-to-directories/tree/main/skills/submit-to-directories"
click node_history "https://github.com/sasuke007/submit-to-directories/tree/main/skills/submit-to-directories"
click node_backlink_check "https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/scripts/verify_backlink.sh"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_skill,node_intake,node_site_research,node_submission,node_handoff,node_report,node_browser toneBlue
class node_catalog,node_filter,node_queue toneAmber
class node_profile,node_history,node_backlink_check toneMint
class node_user,node_agent,node_product_site,node_directory_sites toneIndigo
```

## Components

### Submission workflow

- [Skill instructions](https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/SKILL.md): `skills/submit-to-directories/SKILL.md`
- [Product intake](https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/SKILL.md): `skills/submit-to-directories/SKILL.md`
- [Site and logo research](https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/SKILL.md): `skills/submit-to-directories/SKILL.md`
- [Directory submission](https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/SKILL.md): `skills/submit-to-directories/SKILL.md`
- [Human handoff](https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/SKILL.md): `skills/submit-to-directories/SKILL.md`
- [Submission report](https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/SKILL.md): `skills/submit-to-directories/SKILL.md`

### Directory research

- [Directory catalog](https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/references/catalog.json): `skills/submit-to-directories/references/catalog.json`
- [Candidate filter](https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/scripts/list_directories.py): `skills/submit-to-directories/scripts/list_directories.py`
- **Candidate queue**

### Tracking and checks

- [Private profile](https://github.com/sasuke007/submit-to-directories/tree/main/skills/submit-to-directories): `skills/submit-to-directories`
- [Submission history](https://github.com/sasuke007/submit-to-directories/tree/main/skills/submit-to-directories): `skills/submit-to-directories`
- [Backlink verifier](https://github.com/sasuke007/submit-to-directories/blob/main/skills/submit-to-directories/scripts/verify_backlink.sh): `skills/submit-to-directories/scripts/verify_backlink.sh`

### Other components

- **Product owner**
- **Agent**
- **Agent browser**
- **Product website**
- **Directory websites**

## Connections

- Product owner → Agent: requests listing
- Agent → Skill instructions: follows workflow
- Skill instructions → Product intake: guides intake
- Product intake → Site and logo research: collects URL
- Agent → Agent browser: operates
- Site and logo research → Agent browser: reads site
- Agent browser → Product website: reads content
- Agent → Candidate filter: runs filter
- Candidate filter → Directory catalog: reads records
- Candidate filter → Candidate queue: emits candidates
- Candidate queue → Agent: returns candidates
- Skill instructions → Directory submission: guides submissions
- Directory submission → Agent browser: uses browser
- Agent browser → Directory websites: submits listing
- Directory submission → Human handoff: requests assistance
- Human handoff → Product owner: requests action
- Agent → Private profile: uses contact details
- Agent → Submission history: tracks submissions
- Skill instructions → Submission report: guides reporting
- Agent → Backlink verifier: runs check
- Backlink verifier → Directory websites: checks live link
- Agent → Submission report: provides results
