# Seo Brand Foundation

> >

- **Type:** Skill
- **Install:** `agentstack add skill-siddiqss-semantic-seo-suite-seo-brand-foundation`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [siddiqss](https://agentstack.voostack.com/s/siddiqss)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [siddiqss](https://github.com/siddiqss)
- **Source:** https://github.com/siddiqss/semantic-seo-suite/tree/main/skills/seo-brand-foundation

## Install

```sh
agentstack add skill-siddiqss-semantic-seo-suite-seo-brand-foundation
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# seo-brand-foundation

Produce a rigorous, provenance-tagged foundation that everything downstream depends
on. Getting the central entity and core/outer boundary right here is worth more than
any later cleverness — a perfect map of the wrong site is still wrong.

Read `../../framework/source-context.md` and `../../framework/eav-modeling.md` before
starting. Read `../../framework/00-overview.md` if you haven't this session (it sets
the provenance rules you must follow).

## Inputs
- Brand domain + niche (from the user).
- `brands//config.yaml` — read it first for grounding tier and sources.

## Workflow

1. **Load config.** Determine tier. Everything below adapts to what's enabled.

2. **Understand the current site (if it exists).**
   - T1 (`crawl: true`): run `../../scripts/crawl_sitemap.py` then
     `../../scripts/extract_page_content.py` on home, about, product/pricing, and the
     top few content pages to infer what the site *currently claims to be*. Record as
     `measured` (crawl).
   - T0: `web_search` the brand + fetch the homepage to infer the same, labeled
     `asserted` where you're inferring.

3. **Resolve the central entity.**
   - Distinguish it from the brand name — it's *what the brand is about* (see
     source-context.md "brand-as-central-entity" failure mode).
   - T1 (`wikidata: true`): `../../scripts/wikidata_entity.py` to get canonical typing
     + a real attribute set (`measured`). T0: type it by judgement (`asserted`).

4. **Write source context + central intent.** What the brand is, who for, how it
   monetizes, and the one intent it exists to satisfy. Derive the **core/outer
   boundary** from monetization (source-context.md). If you can't cleanly classify a
   topic as core or outer later, the boundary here is under-specified — fix it now.

5. **Personas + competitor entities.** 2–4 personas (needs, sophistication).
   Competitors via `web_search` (T0) or domain-competitor data (T2), each tagged.

6. **Brand EAV attribute inventory.** Decompose the brand's own offering into
   attributes (defining/unique/rare/common) per eav-modeling.md. Factual values here
   must be grounded — see step 7.

7. **Seed locked-facts.json.** For every concrete brand fact (price, spec, capability,
   stat) you'd want articles to state: confirm it with the user or a cited source, then
   write it to `brands//locked-facts.json` with `source` + `verified_date`. If a
   fact isn't confirmed, it does NOT go in — and articles won't be allowed to state it.
   **Ask the user to confirm brand facts; never invent them to fill the ledger.**

8. **Emit artifacts.**
   - `brands//entity-profile.json` — must validate against
     `../../templates/entity-profile.schema.json`; every factual field
     provenance-tagged (use `../../scripts/provenance.py`).
   - `brands//locked-facts.json` — must validate against its schema.
   - Append a one-page human-readable foundation summary to the workspace
     (`brands//foundation-summary.md`).

## Interview, don't assume
When information is missing (monetization details, what they refuse to cover,
unverified specs), ask the user rather than guessing. The will-not-cover list and the
monetization model are the two answers that most shape the map — get them explicitly.

## Definition of done
- entity-profile.json validates; central entity is the subject, not the brand name.
- Core/outer boundary is stated as a rule you could apply to a new topic.
- locked-facts.json exists (may be small) with sources on every fact.
- No bare numbers anywhere: run `provenance.audit()` mentally / via the validator.

## Grounding ladder
- **T0:** LLM + web_search; most fields `asserted`; entity typed by judgement.
- **T1:** + Wikidata typing (`measured`) + site crawl of claimed identity (`measured`).
- **T2:** + DataForSEO domain-competitor data for the competitor list (`measured`).

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [siddiqss](https://github.com/siddiqss)
- **Source:** [siddiqss/semantic-seo-suite](https://github.com/siddiqss/semantic-seo-suite)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-siddiqss-semantic-seo-suite-seo-brand-foundation
- Seller: https://agentstack.voostack.com/s/siddiqss
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
