This is mostly a discussion task, just wanted to see if you guys had any brighter ideas than what I have.
Currently, we can reference users with @user and other objects with, e.g., Dnnn, but there is no way to mention projects. I think we should build one with the eventual goal of providing integrations (e.g., tag an object by commenting with the project reference, like you can CC a user by commenting with @user).
I'm not sure how we should structure these, though. Pnnn seems bad for two reasons:
- Basically unusable in practice, since you need to refer to projects by name, like users.
- Already used by paste.
The obvious choice is probably #project; this is already in common use in a similar role on Twitter and Facebook is ostensibly implementing them too.
The drawbacks I can see are:
- "#" is a comment character from the CLI, so this may end up with slightly awkward constructions where cmd --tag #project fails and you have to write cmd --tag '#project'.
- Facebook uses "#" for tasks, but all task IDs are numeric so in practice this wouldn't collide.
- "#" is a comment character when editing commit messages, but we already handle this correctly (or, at least, reasonably) because of Facebook.
- "#" can't be used in URLs, but I don't think this is an issue.
Do you guys see any other problems with #project (either technical, or hating hashtags -- note that I hate them but consider this implementation to be ironic), or have other suggestions?
Most other reasonable characters seem awkward to me (;project), are overloaded already (!action in email, @user, ` for monospace) or occur in discussion of source code ($project, *project). I think ~, %, ^ and & could maybe be OK as alternatives. We could use \ in ironic mockery of PHP's namespace operator, but I actually hate that.