Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Place

ASecurity

*Read [`GLANCE.yml`](GLANCE.yml) then [`CARD.yml`](CARD.yml) first. This is the protocol: how a place is keyed, how competing claims are held, and what may leave the repo.* `room` knows what is inside it and which way is out. `place` knows where it is. Almost everything on a map inherits both, and the combination is the normal case: ```yaml inherits: [coffeeshop, room, place] # a shop you can enter, at a tolerated address inherits: [room, place] # the same building after the s...

56 stars
0 votes
0 copies
0 views
Added 10/6/2026
researchgosqlgitdatabase

Security Analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned 10/6/2026

$npx -y skills add SimHacker/moollm --skill place --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Place?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Place
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/simhacker-place/badge)](https://www.skillsdirectory.com/skills/simhacker-place)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
# place — a subject with a location on Earth

*Read [`GLANCE.yml`](GLANCE.yml) then [`CARD.yml`](CARD.yml) first. This is the protocol:
how a place is keyed, how competing claims are held, and what may leave the repo.*

`room` knows what is inside it and which way is out. `place` knows where it is. Almost
everything on a map inherits both, and the combination is the normal case:

```yaml
inherits: [coffeeshop, room, place]   # a shop you can enter, at a tolerated address
inherits: [room, place]               # the same building after the shop closed
inherits: [place]                      # a bench, a bridge, a mural, a tour stop
```

Collisions resolve **left to right**, so ordering is how you say what a thing mostly is.

## Article 1: the address is the subject

Key on the address. Never on the name.

A name-keyed row forks the moment a shop rebrands, lies the moment it moves, and orphans
itself the moment it closes. An address-keyed record absorbs all three as ordinary edits:
the trading name is a **tenancy**, and a rebrand appends one. The bonus is the question
that name-keyed data can never answer -- *what used to be here* -- which falls out for
free, because former tenants are earlier entries in the same list.

Amsterdam makes this literal. The burgemeester tolerates cannabis sales at **addresses**,
not at businesses; the shop is what is currently standing on a tolerated spot.

The id is a slug: `oudezijds-voorburgwal-88h`. It never changes, even when everything
inside it does.

## Article 2: matching addresses is the whole game, and Dutch fights back

One street, five spellings. `1e Const. Huygensstraat` is `EERSTE CONSTANTIJN
HUYGENSSTRAAT`. Normalize before comparing: fold case and diacritics, expand
abbreviations, map ordinals onto digits (`eerste`, `1ste`, `1` → `1e`).

**Exclude the huisletter from the key.** The roster says `Amstel 8 H`, a directory says
`Amstel 8`, and a shopfront says neither. Matching on street plus number and *reporting*
the suffix disagreement finds the shop; matching on the full triple silently loses it.
The disagreement is worth keeping -- it is often the tell for a renumbered building.

House-number ranges (`88-90`) keep the low end and note the range. Which brings us to:

**Orphan pairs.** When an authority lists a number nobody uses and a directory names a
number the authority does not list, on the same street, a few doors apart, that is almost
always **one place wearing two numbers** -- not two problems. Pair them and put one look
at the door on the list. Amsterdam's Bulldog sits at 88 or 90 depending on who you ask.

## Article 3: coordinates are claims, and averaging them is a lie

A place collects coordinates: a government geocoder, a directory, OSM, and the GPS in
your pocket when you stood at the door. They disagree, sometimes by a whole building.

```yaml
coordinates:
  preferred: { lat: 52.3744626, lng: 4.8813694, source: field-survey }
  spread_m: 63           # two sources point at different buildings; the pair is the story
  claims:
    - { lat: 52.3744626, lng: 4.8813694, source: field-survey, observed: 2026-09-20 }
    - { lat: 52.3739900, lng: 4.8809100, source: cannamaps,    observed: 2026-09-15 }
```

Never write the mean. It is a point nobody asserted, it is usually in the canal, and it
destroys the only signal that says *go look*. Choose by documented source preference,
publish the spread, and let a high spread sort itself to the top of the review queue.

## Article 4: every source carries a license, and one field has teeth

`sources.yml` holds each source's license and one boolean, `osm_ok`. A build step refuses
to put a claim into the upload set unless its source says true.

| Source kind | Example | osm_ok | Why |
|---|---|---|---|
| Your own survey | photo, GPS trace, what the staff said | **yes** | yours, current, clean |
| Official publication | a municipal roster, a national geocoder | **yes** | open, and usually free of copyright by statute |
| The commons | OpenStreetMap itself | **yes** | ODbL, share-alike coming back |
| Scraped compilation | somebody's unlicensed directory | no | all rights reserved by default; EU database right may apply |
| Proprietary maps | anything Google-derived | **never** | extraction is forbidden; an import gets reverted and can flag the account |
| Memory | "I think it was called..." | no | a lead, not a survey |

This is why the bike ride is not merely nicer than desk research. **A field survey is the
only evidence that is both current and unambiguously yours to upload.** Everything else
is a lead telling you where to point the camera.

## Article 5: two kinds of past, never one column

A former trading name and a former use of the building are different pasts:

```yaml
tenancies:                  # who SOLD here
  - { name: "Mellow Yellow", until: 2016-12-31, cause: school-distance }
site_history:               # what the BUILDING was
  - what: "a used-horse depot, whose owner invented a crane for lifting horses out of the canal"
    confidence: lead        # remembered, not yet cited
```

Merge them and the guide starts telling people a horse depot sold hash. Keep them apart
and each stays interesting, with its own confidence ladder: **lead → cited → verified**.

## Article 6: review reasons name themselves

Nothing is flagged "needs attention". Every reason says what it is and what would settle
it, because a queue you cannot act on is a queue you will not work:

- `no-name` — on the roster and nobody names it. *Ride past and read the sign.*
- `roster-only` — a tolerated address invisible to every directory. *The most interesting row in the file.*
- `off-roster-but-open` — a source says open where the authority tolerates nothing. *Closure, move, or bad number.*
- `coord-conflict: 63 m` — two sources, two buildings. *Stand at the door with GPS.*
- `probable-renumbering` — paired with a named neighbour. *One look settles both.*
- `no-usable-coord` — no coordinate from a source we may publish. *Geocode officially, or go.*
- `stale-menu: 2011` — the newest evidence is fifteen years old. *Assume nothing.*

## The pipeline, in one line

```
authority + directories + memory  →  claims  →  places/*/PLACE.yml  →  derived views (CSV, SQL, map)
                                                        ↑
                                              survey writes here, and wins
```

YAML is the truth. Spreadsheets and databases are **derived and disposable**; regenerate
them, never edit them. The importer bootstraps a place once and afterwards only ever
*proposes*, because the human-authored comments in a PLACE.yml are data too, and a
generator that overwrites them is a generator that deletes the fieldwork.

## Related

- [`skills/room/`](../room/) — the interior; a place you can enter is both
- [`coffeeshop`](https://github.com/SimHacker/amsterdank/tree/main/skills/coffeeshop) — the first business type built on this, and it lives in
  [amsterdank](https://github.com/SimHacker/amsterdank) rather than here, because a tolerated
  address under a Dutch municipal beleidsregel is not a general-purpose idea. `place` is
  general; its subclasses belong wherever their jurisdiction and their data do.
- [`designs/webtop/OPENSTROLLMAP.md`](../../designs/webtop/OPENSTROLLMAP.md) — the subjective layer over OSM's objective geometry
- [`designs/webtop/SIGNED-ASSESSMENTS.md`](../../designs/webtop/SIGNED-ASSESSMENTS.md) — why assessments are signed and never averaged
- [`designs/webtop/EBIKE-PATH-GRAMMAR.md`](../../designs/webtop/EBIKE-PATH-GRAMMAR.md) — how a place is met at riding speed
- [`designs/webtop/TOURS-AND-PLAYLISTS.md`](../../designs/webtop/TOURS-AND-PLAYLISTS.md) — stringing places into a ride

Attribution

SimHackerSimHacker
View sourceSee grades on GitHubMore from SimHacker →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Competitor Analysis

This skill provides comprehensive analysis of competitor SEO and GEO strategies, revealing what's working in your market and identifying opportunities to outperform the competition.

1823 votes

Deep Research

Universal deep research agent team. 13-agent pipeline for rigorous academic research on any topic. 8 modes: full research, quick brief, paper review, lit-review, fact-check, three-way literature scan, Socratic guided research dialogue, and systematic review with optional meta-analysis. Covers research question formulation, Socratic mentoring, methodology design, systematic literature search, source verification, cross-source synthesis, risk of bias assessment, meta-analysis, APA 7.0 report co...

502942 votes

Paperclip Distill

Use when an operation issue is a Paperclip cursor-window, distill, or backfill — `operationType: "distill"` or `"backfill"` and the body references a Paperclip source bundle for a project or root issue. Turn raw Paperclip activity into a wiki-insightful project page, decisions log, and history note. This skill exists specifically to replace the stiff, datestamp-heavy templated output that the deterministic distiller produces.

953191 votes

Academic Pipeline

Orchestrator for the full academic research pipeline: research -> write -> integrity check -> review -> revise -> re-review -> re-revise -> final integrity check -> finalize. Coordinates deep-research, academic-paper, and academic-paper-reviewer into a seamless 10-stage workflow with mandatory, coverage-bounded integrity checks, two-stage peer review, and auditable quality-assurance artifacts. Triggers on: academic pipeline, research to paper, full paper workflow, paper pipeline, end-to-end p...

502941 votes

Literature Review

Assistance with writing literature reviews by searching for academic sources via Semantic Scholar, OpenAlex, Crossref and PubMed APIs. Use when the user needs to find papers on a topic, get details for specific DOIs, or draft sections of a literature review with proper citations.

6511 votes
View all in research →