This document describe the features that can/should be used for the purpose of scribing using the W3C IRC Server. The features handled by this converter are essentially the same as David Booth’s script, although there some minor additions.
The script removes all lines referring to queue control, as well as commands referring to the RSSAgent, zakim, trackbot, and github-bot IRC bots.
Most IRC commands are based on a ROLE: value pattern, where the various “roles” are described below. The roles are case insensitive. For some roles, the syntax ROLE+ value or ROLE- value may also be used with a slightly different meaning. Some of the roles have aliases.
There are also some (currently only one) scribejs “tools” that influence the operation of scribejs. These begin by the scribejs, XXX string and a space, and are followed by the command itself, where XXX is the tool identifier.
When referring to names (e.g., scribe, present, scribe’s reference to speaker, etc.) the preferred way is to use that person’s IRC nickname. If done that way (and if a suitable configuration file is provided) the script would automatically convert those into the persons’ real name, which make the minutes more readable.
The various ‘roles’ are described below.
zakim and rrsagentAlthough, strictly speaking, not scribejs features, these IRC instructions MUST be issued at the beginning of the call:
/invite zakimzakim, start meetingThese invites the zakim bot, which will also invite the rrsagent bot and make the minutes’ IRC logs public. The is essential: it will ensure the logging of the irc log, in a specific format, on the W3C servers. scribejs relies on those logs. (The zakim bot also provides queue control and has some more features that are not absolutely relevant.)
At the end of the call, the following IRC commands should be issued:
zakim, end meetingThese will generate and store the logs, end the zakim bot. The rssagent bot remains on the channel, and should be ended explicitly via
rrsagent, byeonce the minute log has been stored.
meeting:
agenda:
present=
present+ or present:
present-
guests:, guests=, guests+, and guests-
present:, present=, present+, and present-, respectively; it can be used if guest participants are to be clearly separated from the regular group participants.regrets:, regrets=, regrets+, and regrets-
present:, present=, present+, and present-, respectively; it is used to list group members who have sent, or want to report on IRC, their regrets.chair:, chair=, chair+, chair-
present:, present=, present: and present+, respectively; it is used to list chair(s) of the meeting.date:
An active scribes’ list is maintained using the scribe or the scribenick IRC commands:
scribe:, scribe=, scribe+, and scribe- (alias: scribenick)
present:, present=, present+, and present-, respectively; it can be used to add or remove a name from the active scribes’ list. In contrast to the other terms, scribe- does not mean that the person’s name would be removed from the script header (any person who has scribed, even for a little while, deserves being mentioned). The values MUST be the IRC nicknames.Scribing means that lines, whose IRC nickname appears on the active scribe’s list at the point of scribing, are considered special:
Subsequent IRC entries with that nickname are considered to be the “main” minute. The scribe should:
name: text pattern when the person with nickname name talks and his/her contribution is to be part of the minutes; or... or the … character(s) when the same person continues and the scribe prefers to cut the minutes into several lines for convenience. The script combines all these lines into one paragraph though maintaining the line breaks. (Except if another command is in the IRC log intertwined with those line, in which case a new paragraph is created.)topic:
subtopic:
See also the subsection on issue management with scribejs commands below.
Note that the output of the zakim bot ‘agenda’ command is automatically converted into a Topic:.
proposal: or proposed:
summary:
resolution: or resolved:
action:
acrepo configuration option is set, this also creates an issue for the action at the specified github repository.s/from/to/ or s|from|to|
from to to in the closest preceding line with a match. from and to are regular strings, not regular expressions.s/from/to/g or s|from|to|g
s/from/to/G or s|from|to|G
from to to in the minutes.i/at/add/ or i|at|add|
at and insert a new line with the value of add as a content before that line. A typical usage is to add a (sub)topic line that was forgotten or because the discussion took an unexpected turn.It is possible to refer to individual slides in a slideset: the minutes will contain a thumbnail of the relevant slide that is also linked to the slide itself. This is done as follows:
slideset: address or slideset: address some text
address is a URL for a full slide set. At the moment, this can point to a slideset in PDF (e.g., dumped from Keynote or Powerpoint) or slides in HTML using the shower tool. The minutes also include a reference to the full slide set; the text is either some text or, as a fall back, the URL itself.slideset: -> address some text is also accepted; the -> string is simply ignored)[slide num] or [Slide num]
num; the thumbnail is also linked to the slide itselfThis feature is based on a tool in development, developed by Dominique Hazaël-Massieux and François Daoust. New slide formats may be added in future.
[some text](address), that is maintained verbatim-> some text address, where address is a dereferencable URL, the pattern is turned into [some text](address)[word](word)-> address some text, where address is a dereferencable URL, is converted into See [some text](address).Note, however, that these link patterns should not be used in section titles and subtitles. The generated TOC (e.g., by Jekyll) uses the full section heading as a link text, i.e., it should not contain a link itself… (The script removes those links in case they are used.)
Scribejs ToolsA line starting with scribejs, XXX [ARGS] is a scribejs tool, where XXX is the tool identifier, and the arguments depend on the tool identifier itself. The available commands are:
scribejs, set [nickname] [full name]
nickname to refer to the full name in the generated minutes. full name is space or underscore separated list of words (underscores are converted to spaces). Its use is to provide a one-time extension to the nickname mappings, see README.md. Useful when the call has guests, temporary visitors, etc.scribejs, issue Issuenumber1,Issuenumber2, Issuenumber3
Issuenumber can be:
repo#number to use a different repo (within the same github organization) rather than the default discussion issue repository (the default can be set in the configuration file).scribejs, pr PRnumber1,PRnumber2,PRnumber3
scribejs also offers a shorthand of the form:
topic: title @issue Issuenumber1,Issuenumber2
is equivalent to:
topic: title
scribejs, issue Issuenumber1,Issuenumber2
Finally, scribejs has additional feature on automatically finding the title text, namely for
topic: @issue Issuenumber1,Issuenumber2
it also fetches the title of the issue (or pr) identified by Issuenumber1 from github and uses it for the in the section heading. This abbreviates a frequent pattern in minute taking. (The same shorthand is also available for sub-topics.)
Note that scribejs generates some “directives” (in the form of comments) into the generated minutes for these issues. This can be used by post-processing steps to, e.g., extract the discussion on a specific issue from the minutes, and add a comment to github automatically. See, e.g., the separate scribejs postprocessing tool.