Define reviewed publications and record the field-sampling frame.

IR-WP-0007-T03 can now record a capture-linked publication separately from generated drafts. The field-outcome design is written, and credential, billing, and website-pull gates were rechecked and left waiting.

Assistant: grok
Assistant-Session: 01a106a5-fc07-78c2-b64f-8e04cea25daf
This commit is contained in:
tegwick 2026-10-04 14:51:01 +02:00
parent a25cc867dd
commit 6808aa3594
11 changed files with 296 additions and 7 deletions

View file

@ -154,6 +154,8 @@ def check(root):
all_records(root, kind)
from .external_briefs import verify
verify(root)
from .publications import verify as verify_publications
verify_publications(root)
from .advisor import replay
for ident, _ in all_records(root, 'recommendations'):
replay(root, ident)
@ -189,6 +191,8 @@ def main(argv=None):
briefs_command = commands.add_parser('import-briefs', help='retain unarchived ChatGPT and Grok briefs from the local inbox')
briefs_command.add_argument('--config', type=Path, default=Path('ops/schedule.json'))
briefs_command.add_argument('--inbox', type=Path, help='override the configured inbox for this run')
publish_command = commands.add_parser('publish', help='record a reviewed publication linked to captures')
publish_command.add_argument('input', type=Path)
commands.add_parser('health', help='show durable scheduler health')
export_command = commands.add_parser('export', help='export a recommendation and source dependencies as a tar bundle')
export_command.add_argument('id')
@ -249,6 +253,9 @@ def main(argv=None):
print(json.dumps(result, indent=2))
external = result.get('external_briefs') or {}
return 0 if result['ok'] and external.get('ok', True) else 1
elif args.command == 'publish':
from .publications import publish
print(publish(args.root, json.loads(args.input.read_text())))
elif args.command == 'import-briefs':
from .external_briefs import import_inbox, native_status, resolve_inbox
spec = json.loads(args.config.read_text()).get('external_briefs', {})