一键导入
pit-envelope
PIT envelope contract for all data sub-agents. Defines the standard JSON envelope, field mappings, forbidden keys, and retry rules.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
PIT envelope contract for all data sub-agents. Defines the standard JSON envelope, field mappings, forbidden keys, and retry rules.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Predict stock direction post 8-K earnings & refine using 10-Q/10-K outcomes
Predict stock direction after an 8-K earnings release from a prebuilt earnings context bundle
Post-event causal attribution — explains why a stock moved after 8-K earnings, compares against prediction, writes reusable lessons for future predictions. Production invocation via SDK embed (main session), not fork.
Core Neo4j schema reference with all labels, relationships, data types, and indexes. Use when exploring database structure, checking field types, or understanding the financial knowledge graph schema.
V1105_LONGDESC_START_MARKER. This skill tests v2.1.105's skill-description cap raise from 250 to 1536 characters. If this description appears truncated in the skill listing system-reminder at around character 250, the cap was not raised; if it appears truncated at around 1536, the cap was raised correctly per changelog. The test sentinel markers are placed at specific character offsets: V1105_OFFSET_100 is at char 100 approximately, V1105_OFFSET_300 is at char 300 approximately (old cap would truncate this), V1105_OFFSET_700 is at char 700 approximately, V1105_OFFSET_1000 is at char 1000, V1105_OFFSET_1200 is at char 1200, V1105_OFFSET_1400 is at char 1400, and V1105_END_MARKER is the last visible sentinel. This description also contains deliberately redundant filler to reach the target length without substantive content since the purpose is only to verify truncation behavior rather than to provide meaningful guidance. filler filler filler filler filler filler filler filler filler filler filler filler filler
Child skill for v2.1.107 nesting retest — writes marker and returns
| name | pit-envelope |
| description | PIT envelope contract for all data sub-agents. Defines the standard JSON envelope, field mappings, forbidden keys, and retry rules. |
| user-invocable | false |
Standard JSON envelope for all data sub-agent responses. Validated by pit_gate.py PostToolUse hook.
{
"data": [
{
"available_at": "<ISO8601 datetime+tz>",
"available_at_source": "<canonical source tag>",
"...domain-specific fields..."
}
],
"gaps": [
{"type": "no_data|pit_excluded|unverifiable", "reason": "...", "query": "..."}
]
}
data[]: Array of result items. Each MUST have available_at (full ISO8601 datetime with timezone) and available_at_source.gaps[]: Array explaining missing data. Always present (use [] if no gaps).available_at_source Canonical Values| Value | Meaning |
|---|---|
neo4j_created | Node's created timestamp from Neo4j (News, Transcript) |
edgar_accepted | SEC EDGAR acceptance datetime (Report nodes) |
time_series_timestamp | Per-datapoint timestamp from time series data |
provider_metadata | External provider metadata timestamp |
cross_reference | Timestamp derived from cross-referencing another data source (e.g., quarterly reportedDate used for annual earnings) |
coarse_pit | Approximate PIT using fixed revision snapshots (e.g., 7/30/60/90 days before fiscal period end) |
| Agent | Source Field | Maps to available_at | available_at_source | Notes |
|---|---|---|---|---|
| neo4j-news | n.created | direct | neo4j_created | Full datetime+tz |
| neo4j-report | r.created | direct | edgar_accepted | Full datetime+tz |
| neo4j-transcript | t.conference_datetime | direct | neo4j_created | Full datetime+tz |
| neo4j-xbrl | parent Report r.created | join | edgar_accepted | Requires MATCH to parent Report |
| neo4j-entity (price) | Date.market_close_current_day | normalize to ISO8601 | time_series_timestamp | Hybrid: temporal via Date node close time |
| neo4j-entity (div) | Date.market_close_current_day | normalize to ISO8601 | time_series_timestamp | 65 gaps (44 orphan + 21 NULL close = 1.48% of 4,405) |
| neo4j-entity (split) | Date.market_close_current_day | normalize to ISO8601 | time_series_timestamp | 0 gaps (100% coverage) |
| neo4j-entity (metadata) | — | open mode pass-through | — | Company properties: no pit in params → gate allows |
| perplexity-* (search) | result date | YYYY-MM-DD -> start-of-day NY tz | provider_metadata | PIT: exclude PIT day entirely (prior-day items pass) |
| perplexity-* (chat) | search_results[].date | same | provider_metadata | Chat ops add synthesis item (record_type: "synthesis") in open mode (appended separately from --limit); excluded in PIT mode |
| alphavantage (earnings quarterly) | reportedDate + reportTime | date + session (pre-market/post-market) | provider_metadata | reportTime enables session-aware PIT when combined with reportedDate |
| alphavantage (earnings annual) | Q4 quarterly reportedDate | cross-reference | cross_reference | Matched via fiscalDateEnding; unmatched → gaps[] |
| alphavantage (estimates, historical) | revision bucket (7/30/60/90d before fiscal end) | coarse PIT bucket date | coarse_pit | Nearest bucket ≤ PIT selected; returns pit_consensus_eps + pit_bucket; >90d → gap |
| alphavantage (estimates, forward) | — | gapped in PIT | — | Forward-looking snapshot; not PIT-verifiable |
| alphavantage (calendar) | — | gapped in PIT | — | Forward-looking snapshot; gapped entirely in PIT mode |
| alphavantage (series) | per-datapoint timestamp | direct | time_series_timestamp | Full datetime |
| yahoo (earnings, reported) | Earnings Date | direct (date → start-of-day NY) | provider_metadata | PIT: filter Earnings Date <= PIT; upcoming (unreported) excluded. EPS Estimate frozen at report time. |
| yahoo (earnings, upcoming) | — | excluded in PIT | — | Unreported items represent current state; excluded when --pit present |
| yahoo (estimates) | — | gapped in PIT | — | Current-state snapshot only; no revision history. Redirect to --source alphavantage --op estimates for PIT-safe consensus. |
| yahoo (calendar) | — | gapped in PIT | — | Forward-looking snapshot; gapped entirely in PIT mode |
daily_stock, hourly_stock, session_stock, daily_return, daily_macro, daily_industry, daily_sector, hourly_macro, hourly_industry, hourly_sector
Where these live by relationship type:
INFLUENCES (News/Transcript → Company): daily_stock, hourly_stock, session_stock, daily_macro, daily_industry, daily_sector, hourly_macro, hourly_industry, hourly_sectorPRIMARY_FILER (Report → Company): same return fieldsHAS_PRICE (Date → Company): daily_returnWhen PIT is active, pass the PIT timestamp as a Cypher parameter named pit in the params dict. Example:
params: {ticker: 'NOG', pit: '2024-02-15T16:00:00-05:00'}
The PostToolUse hook reads tool_input.params.pit for validation.
-- Template: wrap results into envelope via collect()
MATCH (...)
WHERE ... AND <source_field> <= $pit
WITH ... ORDER BY ...
WITH collect({
available_at: <source_field>,
available_at_source: '<tag>',
...domain fields (NO forbidden keys)...
}) AS items
RETURN items AS data, [] AS gaps
PIT_VIOLATION_GT_CUTOFF: tighten WHERE clausePIT_FORBIDDEN_FIELD: remove offending RETURN columnsPIT_MISSING_AVAILABLE_AT: alias the correct source field{"data":[],"gaps":[{"type":"pit_excluded","reason":"..."}]}If you cannot produce a reliable available_at for an item in PIT mode, drop it from data[] and record it in gaps[]. Never return "maybe-clean" data.
Date-only fields (e.g., d.date, declaration_date) cannot produce a full ISO8601 datetime+tz. These must be handled per-agent when their rework occurs. Options: