@localpulse/cli 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@localpulse/cli",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "description": "Local Pulse CLI — ingest event posters, search events, manage credentials",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/src/index.ts CHANGED
@@ -540,24 +540,36 @@ Research payload:
540
540
 
541
541
  Research guidance:
542
542
  The source URL is a starting point, not the finish line. After extracting
543
- what the page provides, search the web to fill gaps:
544
- - For each featured person: search "{name}" to find their Instagram,
545
- website, and background. Every person mentioned on the event page
546
- should appear in featured[] with a type that fits (chef, DJ, host…).
547
- - For the organizer: search "{name} instagram" and "{name} website".
548
- - For the venue: search Google Maps for "{venue} {city}" and extract
549
- the google_place_id from the URL.
550
- - For additional URLs: search for the event on RA, Facebook, or the
551
- venue's own website.
543
+ what the page provides, use Instagram graph traversal and web search to
544
+ fill gaps. Do NOT guess or fabricate profile URLs verify every link.
545
+
546
+ Entity discovery (preferred order):
547
+ 1. Find the venue or organizer's Instagram profile first.
548
+ 2. Browse their recent posts or Reels for the event announcement.
549
+ 3. Check who is tagged in that post — these are verified performer handles.
550
+ 4. Also check the caption for @mentions, #hashtags, and links.
551
+ 5. Visit each tagged profile: their bio contains verified links (website,
552
+ Spotify, Bandcamp, YouTube) and genre/context info for featured[].context.
553
+ 6. Check the venue's Tagged tab for posts where others tag the venue —
554
+ artists promoting the event often tag the venue and each other.
555
+
556
+ Fallback research (when Instagram doesn't surface enough):
557
+ - Search "{name}" to find their website and background.
558
+ - Search Google Maps for "{venue} {city}" and extract the google_place_id.
559
+ - Search for the event on RA, Facebook, or the venue's own website.
560
+
561
+ Every person mentioned on the event page or tagged in the Instagram post
562
+ should appear in featured[] with a type that fits (chef, DJ, host…).
552
563
 
553
564
  Quality checklist (aim to fill as many as possible):
554
- ✓ Featured person socials: Instagram, website, Spotify, Bandcamp, RA
565
+ ✓ Featured person socials: Instagram (verified via tags), website, Spotify, Bandcamp, RA
566
+ ✓ Featured person context: pull from Instagram bio — genre, notable work, links
555
567
  ✓ Organizer socials: Instagram, website, RA promoter page
556
568
  ✓ Venue google_place_id (search Google Maps → share → extract place ID)
557
569
  ✓ Multiple event.urls: venue page, RA, Facebook event, artist page
558
570
  ✓ Embed URLs in context: Spotify album/track links, YouTube videos
559
- ✓ Featured person context: background, notable work, affiliations
560
571
  ✓ All featured people as separate entries (support acts, guest chefs, co-hosts)
572
+ ✓ Discover unlisted performers via Instagram tags (support acts, guest hosts)
561
573
 
562
574
  featured[] Who is featured — performers, chefs, hosts, speakers
563
575
  .name Full name (required per person)
@@ -57,7 +57,7 @@ function auditFeatured(payload: ResearchPayload): AuditFinding[] {
57
57
  finding(
58
58
  `featured[${i}].socials`,
59
59
  `${label} has no social profiles.`,
60
- `Search '${person.name} instagram' and '${person.name} website'. Add URLs to featured[${i}].socials[].`,
60
+ `Check the venue/organizer's Instagram for posts about this event — look for @${person.name.toLowerCase().replace(/\s+/g, '')} in tags or caption. If not tagged, search '${person.name} instagram'. Add verified URLs to featured[${i}].socials[].`,
61
61
  ),
62
62
  );
63
63
  }
@@ -67,7 +67,7 @@ function auditFeatured(payload: ResearchPayload): AuditFinding[] {
67
67
  finding(
68
68
  `featured[${i}].context`,
69
69
  `${label} has no context.`,
70
- `Search '${person.name}' and write a 1-2 sentence bio for featured[${i}].context.`,
70
+ `Visit ${person.name}'s Instagram profile pull genre, bio, and notable work for featured[${i}].context. Include any Spotify/Bandcamp/website links from their bio.`,
71
71
  ),
72
72
  );
73
73
  }
@@ -88,7 +88,7 @@ function auditOrganizer(payload: ResearchPayload): AuditFinding[] {
88
88
  finding(
89
89
  "organizer.socials",
90
90
  `Organizer '${name}' has no social profiles.`,
91
- `Search '${name} instagram' and '${name} website'. Add URLs to organizer.socials[].`,
91
+ `Find '${name}' on Instagram (browse their profile directly). Pull socials from their bio. Add URLs to organizer.socials[].`,
92
92
  ),
93
93
  ];
94
94
  }