ppoppo-sigil-parser 0.20.0

Parser for the ppoppo `@@/` chat sigil grammar — entity references, verbs, scopes, modifiers
Documentation
{
  "verbs": {
    "ls": {
      "summary": "List (collection)",
      "usage": "@@/ls <@*|#*|:*>",
      "examples": ["@@/ls #*", "@@/ls @*", "@@/ls :*"],
      "description": "목록 조회. collection modifier(*)로 대상 종류를 지정한다.",
      "phase": "A"
    },
    "cat": {
      "summary": "Show (instance)",
      "usage": "@@/cat <target> [field]",
      "examples": ["@@/cat @~", "@@/cat @~ email", "@@/cat #~", "@@/cat @alice", "@@/cat ^", "@@/cat :decision"],
      "description": "상세 조회. scope(@~, #~, @name, #name), positional(^), ID(ULID), named(:label)로 단일 대상을 지정한다.",
      "phase": "A"
    },
    "find": {
      "summary": "Find by name",
      "usage": "@@/find <@*|#*|:*> <query>",
      "examples": ["@@/find #* team", "@@/find @* alice", "@@/find :* meeting"],
      "description": "엔티티명 검색. 검색어는 필수이다. 검색어 없이 호출하면 에러를 반환한다.",
      "phase": "A"
    },
    "grep": {
      "summary": "Search messages",
      "usage": "@@/grep <#~|#*|#name> <query>",
      "examples": ["@@/grep #~ keyword", "@@/grep #* keyword", "@@/grep #general keyword"],
      "description": "메시지 본문 검색. 채널 scope만 지정 가능하다.",
      "phase": "A"
    },
    "man": {
      "summary": "Help",
      "usage": "@@/man [verb]",
      "examples": ["@@/man", "@@/man cat"],
      "description": "도움말. verb를 지정하면 해당 명령의 상세 도움말을 표시한다.",
      "phase": "A"
    },
    "save": {
      "summary": "Save to My Info",
      "usage": "@@/save <^|text>",
      "examples": ["@@/save ^", "@@/save ^^", "@@/save 계좌번호 000-0000-0000"],
      "description": "My Info의 Generic Text에 저장. ^로 앞 메시지를, 텍스트로 리터럴을 저장한다.",
      "phase": "A+"
    },
    "set": {
      "summary": "Set value",
      "usage": "@@/set <@~|@name> <field> <value>",
      "examples": ["@@/set @~ email foo@bar.com", "@@/set @alice alias Kim"],
      "description": "값 설정. @~ (본인 데이터) 또는 @name (연락처 alias). PAS 프로필 필드는 accounts.ppoppo.com으로 안내.",
      "phase": "B"
    },
    "rm": {
      "summary": "Remove / delete",
      "usage": "@@/rm <target>",
      "examples": ["@@/rm :decision", "@@/rm ^", "@@/rm @alice", "@@/rm #general"],
      "description": "삭제. 라벨(:label), 메시지(^/ULID, 본인만), 연락처(@name), 채널 탈퇴(#name).",
      "phase": "B"
    },
    "lbl": {
      "summary": "Label a message",
      "usage": "@@/lbl <^|ULID> <label>",
      "examples": ["@@/lbl ^ decision", "@@/lbl ^^ action-item"],
      "description": "메시지에 라벨 부여. positional ref(^) 또는 ULID로 대상을 지정한다.",
      "phase": "B"
    }
  },
  "error_usage": "Available verbs:\n  ls    List (collection)       @@/ls #*\n  cat   Show (instance)         @@/cat @~ email\n  find  Find by name            @@/find #* team\n  grep  Search messages         @@/grep #~ keyword\n  man   Help                    @@/man [verb]\n  save  Save to My Info         @@/save ^\n  set   Set value               @@/set @~ email foo\n  rm    Remove / delete         @@/rm :decision\n  lbl   Label a message         @@/lbl ^ decision"
}